mysql where 검색 조건문 조언 좀 부탁드립니다.
본문
특정 키워드 검색 조건문을 만들때 조건문 쿼리를 어떻게 만들어야 할지 조언 좀 부탁드립니다.
예를들어 키워드가 "신라면" 일때
wr_area
wr_subject
wr_keyword
wr_theme
wr_content
위 필드에서 찾아야 한다면
조건문을 어떻게 만들어 주어야 할까요?
속도가 좀 빠르면서 검색어가 포함된 row를 뽑아낸다면
어떤식으로 where 문을 만들면 좋을까요?
전체 rows는 약 1500개 정도 됩니다.
where (1) and wr_area like '%신라면%' or wr_subject like '%신라면%' or wr_keyword like '%신라면%' or wr_theme like '%신라면%' or wr_content like '%신라면%'
이런식으로 하면 너무 느릴려나요?ㅠㅠ
고견 좀 부탁드립니다.
!-->답변 3
레코드가 1500 개정도면 걱정 없이 님이 제시한 쿼리로 실행해도 됩니다.
그래도 다른 방법으로 쿼리실행하려면 CONCAT_WS() 라는 디비함수를 이용해보세요.
WHERE concat_WS('-', wr_area,wr_subject, wr_keyword, wr_theme, wr_content) like '%신라면%'
* Full-Text search
+ MySQL ngram PARSER
- https://dev.mysql.com/doc/refman/5.7/en/fulltext-search.html
- https://dev.mysql.com/doc/refman/5.7/en/fulltext-search-ngram.html
+ MariaDB Mroonga ENGINE
- https://mariadb.com/kb/en/full-text-index-overview/#with-query-expansion
- https://mroonga.org/docs/tutorial/wrapper.html#how-to-use-wrapper-mode
where match 구문이 최적인듯요
답변을 작성하시기 전에 로그인 해주세요.