나는 현재 다음과 같습니다 검색이 :mysql에서 JOIN 검색으로 LIKE를 개선하려면 어떻게해야합니까?
SELECT s.ID
FROM Shoe s
INNER JOIN Account a
ON s.UserID = a.ID
WHERE s.Publish='1' AND
(s.Brand LIKE '%$Search%'
OR s.Name LIKE '%$Search%'
OR s.PrimaryColor LIKE '%$Search%'
OR a.User LIKE '%$Search%')
ORDER BY s.ID DESC
LIMIT $offset, $rowsPerPage"
이 내가 같은 "블루"또는 "나이키"로 검색을 수행 할 때 잘 작동하지만 나는 그런 "블루 나이키"아무것도로 검색을 할 경우 보고. FULLTEXT
을 사용해야합니까? 어떻게 개선 할 수 있습니까? 검색 변수와 관련된 모든 열을 검색 할 수 있기를 원합니다.
예, MySQL의 전체 텍스트 검색 기능 또는 외부 검색 색인을 사용해야합니다. –
LIKE 왼쪽에 와일드 카드를 사용하면 MySQL이 인덱스를 사용하지 못하게됩니다. 필요에 따라 solr과 같은 것을 볼 수도 있습니다. –
@SeanBright Fulltext와 함께 Match Against를 시도했지만 결과가 0 점입니다. 나는 이것을 더 자세히 조사하고 이것을 보았습니다 - http://stackoverflow.com/questions/5925369/mysql-join-and-match-against-search-fail "stop"단어 때문에 작동하지 않는 것 같습니다. 나는 잃어버린 경우에 mysql에 너무 전진하지 않는다 그래서 저를 용서하십시오. – SReca