아래는 영화제목을 검색하여, 영화 목록(리스트)을 가져오는 SQL문이다.
select m.id, m.title, count(r.id) as review_cnt, ifnull(avg(r.rating) , 0) as avg_rating
from movie m
left join review r
on m.id = r.movieId
where title like '%story%' or summary like '%story%'
group by m.id
limit 0, 25;
title like %(유저가 단어를 입력)%
그런데 유저가 입력한 단어가 있는 행을 검색하는 것은 속도가 느려서
속도를 빠르게 해주려면 아래와 같이 설정해야 한다.
컬럼 설정에서 index에 index name을 자유롭게 지정하고, Type을 FULLTEXT로 하고,
인덱스 컬럼에서 컬럼을 선택해주면 된다.
(검색 키워드가 들어가는 컬럼을 지정하면 된다. 컬럼 갯수는 1개,2개,3개... 등 상관 없다.)
사진에서는 위에서 where title like '%story%' or summary like '%story%' 으로 하였으므로
title과 summary를 체크한 것이다.
'MySQL' 카테고리의 다른 글
MySQL) like에 빨간 밑줄이 뜰 때 백틱(`) 사용하기 (0) | 2024.05.30 |
---|---|
MySQL) 테이블의 데이터를 모두 delete 했을 때 id 숫자 리셋 시키는 방법 (0) | 2024.05.30 |
MySQL) now() 와 now() on update now() 차이점 (0) | 2024.05.20 |
MySQL) Instargram - 유니크와 이중유니크 : 클라이언트가 동일 인물을 중복 팔로우 하면 오류 뜨게 하기 (0) | 2024.05.20 |
MySQL) Instargram (3) : 프론트엔드 개발자에게 보낼 데이터 만들기 (0) | 2024.05.20 |