MYSQL에서 MATCH ( name ) AGAINST 사용 질문입니다. 채택완료
강력드라이브
1년 전
조회 4,667
LIKE '% %' 검색이 느려서 MATCH AGAINST 를 사용을 하는데요.
예를 들어 name 필드에 값이
1. 홍길동&장동건
2. 현빈
3. 홍길동
MATCH ( name ) AGAINST ( '홍길동' ) 이렇게 검색 조건을 주면
3행 홍길동 데이터만 출력이 되는게 맞나요?
1. 홍길동&장동건
3. 홍길동
이렇게 '홍길동'이 포함된 모든 행이 나오도록 하려면 조건을 어떻게 주어야 할까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 4개
채택된 답변
+20 포인트
1년 전
내용상으로 봤을때는 ft_min_word_len 설정을 확인해 보셔야 할듯 합니다.
</p>
<p>SHOW VARIABLES LIKE 'ft_min_word_len';</p>
<p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 2개
�
강력드라이브
1년 전
�
마르스컴퍼니
1년 전
my.cnf 에서 최소 인덱싱 글자수 설정 후 mysql 서버 재시작과 관련있을 수 있습니다.
ft_min_word_len = 2
https://kabkee.github.io/mysql/mysql-full-text-search/
※ https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%ED%92%80%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9D%B8%EB%8D%B1%EC%8A%A4Full-Text-Index-%EC%82%AC%EC%9A%A9%EB%B2%95
ft_min_word_len = 2
https://kabkee.github.io/mysql/mysql-full-text-search/
※ https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%ED%92%80%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9D%B8%EB%8D%B1%EC%8A%A4Full-Text-Index-%EC%82%AC%EC%9A%A9%EB%B2%95
댓글을 작성하려면 로그인이 필요합니다.
1년 전
SELECT * FROM table_name WHERE MATCH (name) AGAINST ('+홍길동' IN BOOLEAN MODE);
앞에 +를 넣어주는게 더 정확한 값을 가지고 오실수 있습니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
강력드라이브
1년 전
+를 붙이면 like 의 '%홍길동' 과 같은걸까요?
M
Min아빠
1년 전
홍길동을 포함한다는 것 입니다.
fulltext index를 걸으신건 맞나요?
fulltext index를 걸으신건 맞나요?
댓글을 작성하려면 로그인이 필요합니다.
1년 전
다음과 같이 해보시는건 어떨까 합니다.
</p>
<p>SELECT * FROM table_name WHERE MATCH (name) AGAINST ('홍길동' IN BOOLEAN MODE);
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
강력드라이브
1년 전
('홍길동' IN BOOLEAN MODE);
이렇게 하여도 SELECT의 결과가 나오지 않네요. ㅠㅠ
이렇게 하여도 SELECT의 결과가 나오지 않네요. ㅠㅠ
�
웹메이킹
1년 전
[code]
SELECT * FROM table_name WHERE name LIKE '%홍길동%';
[/code]
이렇게 하시면 원하시는 결과값을 얻으실 수 있지 않을까 생각합니다.
SELECT * FROM table_name WHERE name LIKE '%홍길동%';
[/code]
이렇게 하시면 원하시는 결과값을 얻으실 수 있지 않을까 생각합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그런데 쿼리시 결과가 나오지 안네요ㅠ
1. 홍길동&장동건
3. 홍길동
'홍길동' 키워드가 들어간 행 모두가 나오게 하려면 어떻게 조건을 줘야 할까요