Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바
- 한글깨지는문제
- DTO사용이유
- 머신러닝
- querydsl적용하기
- RProgramming
- programmers
- core.autocrlf
- Rstudio
- r
- java
- JPA
- Spring
- 머신러닝프로세스
- R프로그래밍
- queryDSL
- LIKE검색
- Eclipse
- git오류
- 이중배열
- summary()
- cor()
- Q타입클래스
- git
- 알고리즘
- stepfilter
- R명령어
- 프로그래머스
- str()
- 이클립스
Archives
- Today
- Total
놀고 싶어요
[DataBase] LIKE 검색 시, %와 _ 검색 하는 방법 본문
SQL에서 =은 데이터가 일치해야만 필터링이 된다.
LIKE 를 통해서 해당 단어를 포함하는 데이터 모두 필터링할 수 있는데, %와 _을 사용한다.
만약 FRUIT 라는 TABLE에 다음과 같이 데이터가 있다고 가정하자.
PID | PNAME |
100 | APPLE |
200 | GRAPE |
300 | PEAR |
400 | WATERMELON |
500 | MANGO |
SELECT * FROM FRUIT WHERE PNAME = 'AP';
아무 것도 조회되지 않는다.
SEELCT * FROM FRUIT WHERE PNAME LIKE '%AP%';
결과값: APPLE, GRAPE
SEELCT * FROM FRUIT WHERE PNAME LIKE 'AP%';
결과값: APPLE
%는 해당 index부터 단어가 있을 수도 없을 수도 있다는 의미로, %를 꼭 써줘야만 해당 단어를 포함하는 단어가 검색이 된다!
SEELCT * FROM FRUIT WHERE PNAME LIKE '__A%'; -- _ 두 개 있음
결과값: GRAPE, PEAR
_는 내가 찾고 싶은 단어 앞에 _ 수 만큼 글자가 있어야 함을 의미한다.
_가 2개 이므로 _가 0개인 APPLE과 1개인 WATERMELON, MANGO를 제외하고 GRAPE와 PEAR만 검색이 된다.
만약 내가 찾고 싶은 단어에 %와 _가 포함되어 있다면??
SELECT * FROM FRUIT WHERE PNAME LIKE 'A\%%'; -- A%로 시작하는 PNAME 데이터를 가져온다.
SELECT * FROM FRUIT WHERE PNAME LIKE 'A\_%'; -- A_로 시작하는 PNAME 데이터를 가져온다.
%와 _ 개수 만큼 각각 앞에 \를 사용하면 된다.
혹은
SELECT * FROM FRUIT WHERE PNAME LIKE 'A@_%' ESCAPE '@'; -- A_로 시작하는 PNAME 데이터를 가져온다.
-- '@'가 아닌 다른 글자도 가능하지만, 데이터에도 해당 글자가 있으면 안된다.
ESCAPE를 사용하여 검색해도 된다.
@, # 등.. 여러 문자가 가능하지만, 만약 데이터안에 해당 문자가 있으면 그 문자도 빠지므로 주의하자
'Database' 카테고리의 다른 글
Oracle 테이블/컬럼 조회하기 (0) | 2021.05.04 |
---|