제목에 story가 들어간 리스트를 찾는다면
아래와 같이 like를 사용하여 찾게 된다
select m.title,
count(r.userId) 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%'
group by m.title
limit 0,25;
이렇게 찾아 낼 수 있겠다
그런데 만약 데이터의 갯수가 엄청나게 많아진다면
데이터처리 속도가 매우 느리게 된다
그럴때 사용하는 것이
full text
해당 테이블의 인덱스로 들어가서
이렇게 타입을 풀텍스트로 설정한뒤에
해당 컬럼을 선택해주면 된다
만약 summary 컬럼도 같이 검색하고 싶다면
select m.title,
count(r.userId) 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.title
limit 0,25;
검색기능을 사용할 거라면
설정 해두는것이 이로우면 이롭지, 손해는 없으니
검색기능을 사용하게 될 컬럼이라면 설정 해 두자
'MYSQL' 카테고리의 다른 글
MYSQL - DB 데이터 파일로 저장하기 (0) | 2024.05.27 |
---|---|
MYSQL - db 전용 마스터계정 (0) | 2024.05.20 |
MYSQL - 이중 조건 처리 (0) | 2024.05.17 |
MYSQL - 테이블 생성 - Unique (0) | 2024.05.17 |
MYSQL - 다중테이블 (0) | 2024.05.16 |