특정 단어 검색 (LIKE)
▮ %
카테고리가 로그라이크 장르인 게임들만 출력하고 싶다. (액션 로그라이크도 포함해서)
LIKE 뒤에 검색어를 적으면 그 글자만 정확히 들어있는 행만 찾아주기 때문에
와일드카드인 %를 붙여주어야 한다. (%는 아무 글자를 의미한다고 보면 된다.)
SELECT * FROM steam.game WHERE 카테고리 LIKE "%로그라이크%";
카테고리에 로그라이크가 들어있거나 RPG가 들어있는 게임들만 출력하고 싶다.
SELECT * FROM steam.game WHERE 카테고리 LIKE "%로그라이크%" OR 카테고리 LIKE "%RPG%";
▮ _
"_"도 "%"처럼 아무 글자를 의미하는데 차이점이 있다면
- % : 아무 글자 0자부터 무한개까지를 의미
- _ : 아무 글자 딱 1자를 의미
SELECT * FROM steam.game WHERE 카테고리 LIKE "__ 로그라이크"
▮ %의 문제점
- index를 활용할 수 없음
- %, LIKE등은 VARCHAR() 컬럼에 주로 사용하며, CHAR 컬럼에 사용할 때는 주의해야함
- CHAR(6)으로 설정해놓았다면 총 6자를 저장할 수 있다는 것인데
"액션RPG"이라는 글자를 저장하면 "액 션 R P G _"라고 뒤에 남은 공간 1글자를 공백으로 채워서 저장해줌
그렇게되면 "%RPG"라고 검색을 해도 찾을 수가 없음