집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 실시간 검색에서 '가장 일치하는' 순서를 구현하는 방법은 무엇입니까?
MySQL Order by "Best Match"
MySQL에서 실시간 검색을 수행할 때 알파벳 순서를 기반으로 한 결과의 기본 순서는 제공되지 않을 수 있습니다. 가장 관련성이 높은 결과입니다. 검색 문자열이 단어 시작 부분에 더 가깝게 나타나는 결과의 우선 순위를 지정하려면 "가장 일치" 순서를 구현하는 것이 좋습니다.
시작 위치별 정렬
결과를 배치하려면 검색 문자열이 단어 시작 부분에 먼저 나타나는 경우 다계층 정렬 방식을 활용할 수 있습니다.
SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY CASE WHEN word LIKE 'searchstring%' THEN 1 WHEN word LIKE '%searchstring' THEN 3 ELSE 2 END
In 이 쿼리:
직위순으로 정렬 단어
또는 단어 내의 검색 문자열 위치를 기준으로 결과를 정렬하려면 LOCATE() 함수를 사용할 수 있습니다.
SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY LOCATE('searchstring', word)
이 방법을 사용하면 다음과 같습니다.
타이브레이커 처리
여러 단어가 동일한 검색 문자열 위치를 공유하는 경우 보조 정렬을 도입할 수 있습니다.
SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY <whatever>, word
다른 순서 기준(예: 알파벳순 정렬)을 추가하면 동점을 끊고 일관된 순서를 유지할 수 있습니다.
위 내용은 MySQL 실시간 검색에서 '가장 일치하는' 순서를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!