나는 제목, 저자 및 텍스트의 세 가지 필드에 키워드 검색을 만들려고합니다. 내가 관련성에 따라 정렬되기를 바랄 테니, 어느 분야에서나 일치하는 부분을 한 점 부여합니다. 또한 각 행에 스토리 태그를 저장하는 태그라는 테이블이 있습니다. 태그에 일치하는 항목이 있으면 해당 태그가 사용 된 횟수를 관련성에 추가합니다. 사용자가 검색을 입력하면 일련의 키워드를 입력 할 수 있습니다. 문자열을 폭발시키고 for 루프를 사용하여 아래의 select 문에 각 키워드에 대한 코드를 추가하려고 생각했습니다. 이 작업을 수행하는 더 좋은 방법이 있는지 궁금 해서요.MySQL의 PHP 키워드 검색
select text, ((case when S.sid in (select sid from tags where tahname like 'db')
then (select uses from tags T where S.sid = T.sid and tagname like 'db') +
(case when title like '%db%' then 1 else 0 end) +
(case when author like '%db%' then 1 else 0 end) +
(case when text like '%db%' then 1 else 0 end)) as relevance
from stories S
order by relevance desc
감사합니다.
안녕 응답 주셔서 감사합니다 : 포함입니다. 나는 mysql이 처음이기 때문에 MyISAM 테이블과 InnoDB 테이블 사이의 차이점을 잘 모르지만 InnoDB 테이블을 사용하고있다. 필자는 (mysql 5.6에서) InnoDB 테이블에서 아직 사용할 수 없다고 말할 때 그것을 가정한다. – user1832628
맞아요, MySQL의 다음 릴리스를 위해 개발중인 새로운 기능입니다. –