2011-09-30 4 views
3

내 검색을 사용하면 내 데이터베이스에서 게임을 검색 할 수 있습니다. 유일한 문제는 사용자가 검색 내에서 여러 단어를 입력하면 여러 단어가 서로 바로 인접한 경우에만 조회가 발생한다는 것입니다.MYSQL을 사용하여 전체 문자열 대신 각 단어로 검색 PHP

예 :

검색 용어 = 콜 오브 듀티 현대

결과 = 없음

하지만 그들이 입력하는 경우 :

이 용어를 검색 = 듀티 - 또는 - 현대 전쟁의 전화

결과 = 콜 오브 듀티 모던 워 페어 1/2/3 등

나는 각 단어를 끊고 각 용어를 검색하지만 내 모든 프로그램의 속도를 먹을 것 걱정 메신저해야 알

$query = "SELECT ID, title FROM games WHERE title LIKE '%{$title}%' AND platform = :platform LIMIT $startFrom,15"; 
     $statement = $dbG->prepare($query); 
     $statement->bindValue(':platform', $platform); 
     $statement->execute(); 
     $gamesLike = $statement->fetch(PDO::FETCH_ASSOC); 

...

는 특정 MYSQL 쿼리가 있습니다 :

여기에 내 MySQL의 쿼리입니다 비틀기는 내가 필요한 결과를 얻기 위해 사용할 수 있습니까? http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

그것은 본질적으로 matchagainst를 사용하는 검색 엔진으로 MySQL의 변 :

모든 제안을 크게

답변

6

전체 텍스트 검색이 위해 중대하다

이 시간 내 주셔서 감사 감사하겠습니다 검색 용어가 일치하는 열에 얼마나 자주 나타나는지에 대한 순위를 얻으려면 부분 일치 검색, 여러 일치 검색, 실적 향상에 도움이되는 작은/공통 단어 제외, +some -search과 같은 검색 키워드/기호는 some이어야하며 search은 가질 수없는 결과를 반환합니다.

또한 기본적으로 필요한 모든 작업을 설정하기가 매우 쉽습니다.

+0

와우, 정확히 내가 필요로하는 (그리고 mysql이 가지고 있었으면 좋겠다) =) – Dan

관련 문제