MYSQL에서 MATCH ( name ) AGAINST 사용 질문입니다.
본문
LIKE '% %' 검색이 느려서 MATCH AGAINST 를 사용을 하는데요.
예를 들어 name 필드에 값이
1. 홍길동&장동건
2. 현빈
3. 홍길동
MATCH ( name ) AGAINST ( '홍길동' ) 이렇게 검색 조건을 주면
3행 홍길동 데이터만 출력이 되는게 맞나요?
1. 홍길동&장동건
3. 홍길동
이렇게 '홍길동'이 포함된 모든 행이 나오도록 하려면 조건을 어떻게 주어야 할까요?
답변 4
내용상으로 봤을때는 ft_min_word_len 설정을 확인해 보셔야 할듯 합니다.
SHOW VARIABLES LIKE 'ft_min_word_len';
다음과 같이 해보시는건 어떨까 합니다.
SELECT * FROM table_name WHERE MATCH (name) AGAINST ('홍길동' IN BOOLEAN MODE);
SELECT * FROM table_name WHERE MATCH (name) AGAINST ('+홍길동' IN BOOLEAN MODE);
앞에 +를 넣어주는게 더 정확한 값을 가지고 오실수 있습니다. !-->
match (name) against ('홍길동*' in boolean mode);
답변을 작성하시기 전에 로그인 해주세요.