본문 바로가기
MySql

MySQL 관련 성별 MySQL 순서

by 베이스 공부 2021. 1. 12.
반응형

적절한 결과를 가져 오기 위해 사이트 콘텐츠 테이블을 검색하는 검색 양식이 있습니다.

제목 및 콘텐츠 필드를 검색하고 관련성 순서대로 결과를 가져오고 싶습니다. 타이틀에 최우선 순위를 부여합니다.

테이블 (tblContent)이 있다고 가정 해 보겠습니다.

intID | strTitle    | txtContent

1     | Smith John  | Lorem Ipsum
2     | Lorem Ipsum | Lorem John Smith Ipsum
3     | John Smith  | Lorem Ipsum Lorem Ipsum
4     | Lorem Ipsum | Lorem Ipsum Lorem Ipsum
5     | Lorem Ipsum | Lorem Ipsum Smith John

"John Smith"를 검색하면 결과가 3,2,1,5 순서로 표시됩니다.

이것이 어떻게 가능한지?

 

해결 방법

 

나는 이것으로 꽤 자리를 잡았습니다.

SELECT *, 
( (1.3 * (MATCH(strTitle) AGAINST ('+john+smith' IN BOOLEAN MODE))) + (0.6 * (MATCH(txtContent) AGAINST ('+john+smith' IN BOOLEAN MODE)))) AS relevance 
FROM content 
WHERE (MATCH(strTitle,txtContent) AGAINST ('+john+smith' IN BOOLEAN MODE) ) 
ORDER BY relevance DESC

 

참조 페이지 https://stackoverflow.com/questions/15026244

 

 

반응형

댓글