LIKE 연산자는 문자열의 패턴을 검색하는 데 사용을 합니다
우리가 '라면'이라고 검색을 하면 정확하게 라면이라는 글 또는 사전의 내용이 검색되기도 하지만
동시에 '라면을 먹었다' '짜장라면' 등 라면이 들어간 다른 문자열들도 검색이 됩니다
라면 = 짜장라면 은 물론 다른 단어라 검색이 안되여야 하지만
LIKE 연산자를 사용하면 해당하는 단어만 있으면 검색이 됩니다
기본적인 사용법입니다
SELECT * FROM 테이블 WHERE 칼럼 LIKE 'PATTERN'
- 패턴에는 ( % )와 ( _ )가 사용되는데 ( % )는 '모든 문자'라는 의미이고 ( _ )는 '한 글자'라는 의미이다
실제로 사용하는 예를 보기 위해 아래 테이블을 준비했습니다
NAME | PRICE | AMOUNT |
짜장라면 | 1000 | 4 |
스파게티 | 1000 | 4 |
라면 | 800 | 3 |
진라면 큰컵 | 1100 | 5 |
라면볶이 | 1500 | 2 |
SELECT * FROM TABLE WHERE NAME LIKE '%라면%'
- NAME 칼럼에 데이터중 앞뒤에 무슨 글자가 오던지 '라면'이라는 문자가 있는 ROW를 출력합니다
NAME | PRICE | AMOUNT |
짜장라면 | 1000 | 4 |
라면 | 800 | 3 |
진라면 큰컵 | 1100 | 5 |
라면볶이 | 1500 | 2 |
'라면' 글자가 없는 스파게티를 제외하고 다 출력이 됩니다
SELECT * FROM TABLE WHERE NAME LIKE '%라면'
- NAME 칼럼에 데이터중 앞에 무슨 글자가 오던지 '라면'으로 끝나는 문자가 있는 ROW를 출력합니다
NAME | PRICE | AMOUNT |
짜장라면 | 1000 | 4 |
라면 | 800 | 3 |
이렇게 출력이 되겠죠? 이제 어느 정도 이해가 됐을 거라 생각됩니다
SELECT * FROM TABLE WHERE NAME LIKE '라면%'
- NAME 칼럼에 데이터중 뒤에 무슨 글자가 오던지 '라면'으로 시작하는 문자가 있는 ROW를 출력합니다
표를 안 보셔도 라면 / 라면복이 ROW가 출력될걸 쉽게 알 수 있을 거라 생각합니다
이제 ( _ ) 이 녀석도 사용해 보겠습니다
SELECT * FROM TABLE WHERE LIKE '_라면%'
- NAME 칼럼에 데이터중 뒤에는 아무 글자 오던 상관없이 맨 앞에 한 글자 뒤에 '라면' 글자가 있는 ROW를 출력합니다
NAME | PRICE | AMOUNT |
진라면 큰컵 | 1000 | 4 |
'라면' 앞에 '진'이라는 글자 하나만 있는 진라면 큰 컵 ROW만 출력됩니다
SELECT * FROM TABLE WHERE NAME LIKE '__라면%' -- 언더바2개
- 이렇게 하면 앞에 두 글자가 와야 하기에 짜장라면 ROW가 출력됩니다
SELECT * FROM TABLE WHERE NAME LIKE '__라면__' -- 양쪽 언더바 2개
- 이렇게 하면 '라면' 문자 앞뒤로 2개의 문자가 있는 ROW가 출력이 돼야 하는데
- 해당하는 ROW가 없기에 아무것도 출력이 안됩니다
SELECT * FROM TABLE WHERE NAME LIKE '라면'
- 이렇게 검색하면 NAME 칼럼에서 '라면' 문자 그대로 가진 ROW만 출력이 됩니다
NAME | PRICE | AMOUNT |
라면 | 1000 | 4 |
이런 결과가 출력이 됩니다
LIKE 연산자는 데이터를 찾을 때 잘 활용하시면 좋을 것 같습니다
이상으로 포스팅을 마치겠습니다
도움이 되셨다면 공감 버튼 부탁드려요~