[MySQL] 데이터 검색(LIKE)

Medium_ryan ㅣ 2024. 10. 3. 15:31

LIKE

WHERE문 안에서 쓸 수 있는 간단한 검색기능을 구현할 수 있다.

WHERE문만으로는 '일치'하는 검색기능까진 구현 가능하지만, '포함'하는 검색기능까지는 힘들기 때문에 LIKE가 효과적이다.

여기서 %와, _가 큰 역할을 한다.

%,_는 둘 다 [아무문자]라는 뜻을 갖는다.

하지만 %는 글자수 제한이 없는 아무문자, _는 아무문자 한 자를 뜻한다.

ex)

[%안녕%]은 안녕이라는 키워드가 포함된 모든 검색.

[%안녕]은 안녕이라는 키워드로 끝나는 모든 검색.

[안녕%]은 안녕이라는 키워드로 시작하는 모든 검색.

[_안녕_]은 중간에 안녕이라는 키워드가 포함된 4글자 검색.

[_안녕]은 끝에 안녕이라는 키워드가 포함된 3글자 검색.

[안녕_]은 처음에 안녕이라는 키워드가 포함된 3글자 검색.

[안녕__]은 처음에 안녕이라는 키워드가 포함된 4글자 검색.

-- WHERE과 다를것 없는 일치형 검색
SELECT * FROM blog.like
WHERE hello LIKE "안녕";
-- [안녕]이라는 키워드가 포함된 모든 요소 검색
SELECT * FROM blog.like
WHERE hello LIKE "%안녕%";
-- [안녕]으로 끝나는 키워드가 포함된 모든 요소 검색
SELECT * FROM blog.like
WHERE hello LIKE "%안녕";
-- [안녕]으로 시작하는 키워드가 포함된 모든 요소 검색
SELECT * FROM blog.like
WHERE hello LIKE "안녕%";
-- _표현 생략..

검색 전 데이터(모든 데이터)
안녕이라는 키워드가 포함된 모든 검색
안녕이라는 키워드로 끝나는 모든 검색
안녕이라는 키워드로 시작하는 모든 검색