"가장 일치하는 항목"을 기준으로 MySQL 결과 정렬
이 시나리오의 목표는 MySQL 실시간 검색 쿼리를 향상하여 결과의 우선순위를 지정하는 것입니다. 검색어가 단어 앞부분에 나오는 경우.
현재 쿼리는 결과를 정렬합니다. 알파벳순:
SELECT word FROM words WHERE word LIKE '%searchstring%' ORDER BY word ASC
원하는 정렬을 달성하기 위해 조건부 논리를 도입하여 결과에서 검색어의 위치를 구별할 수 있습니다.
시작, 중간, 기준으로 정렬 단어 끝
단어 시작 부분의 일치 항목이 우선순위가 높은 결과를 정렬하려면 다음을 사용할 수 있습니다. 쿼리:
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
이 쿼리는 각 결과에 가중치를 할당합니다. 즉, 검색어로 시작하는 완벽한 일치에 1, 단어의 어느 위치에서든 일치하는 경우 3, 그 외의 경우 2입니다. 이러한 가중치에 따라 정렬 순서가 결정됩니다.
일치하는 문자열의 위치별 정렬
정확한 일치 위치를 기준으로 결과를 정렬하려면 다음을 활용할 수 있습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!