> 데이터 베이스 > MySQL 튜토리얼 > 검색어 위치를 기준으로 '가장 일치하는 항목'으로 MySQL 검색 결과를 정렬하려면 어떻게 해야 합니까?

검색어 위치를 기준으로 '가장 일치하는 항목'으로 MySQL 검색 결과를 정렬하려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-30 00:37:20
원래의
961명이 탐색했습니다.

How Can I Order MySQL Search Results by

"가장 일치하는 항목"을 기준으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿