Tôi hiện đang có một tìm kiếm mà trông như thế này:Làm cách nào để cải thiện LIKE của tôi với tìm kiếm JOIN trong mysql?
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"
này hoạt động tốt khi tôi thực hiện tìm kiếm như "Blue" hay "Nikes", nhưng nếu tôi làm một tìm kiếm như "Blue Nikes" không có gì trả về. Tôi có nên sử dụng FULLTEXT
không? Làm thế nào tôi có thể cải thiện điều này? Tôi muốn có thể tìm kiếm tất cả các cột có thể liên quan đến biến tìm kiếm.
Có, bạn nên sử dụng khả năng tìm kiếm văn bản đầy đủ của MySQL hoặc chỉ mục tìm kiếm bên ngoài. –
Sử dụng ký tự đại diện ở bên trái của LIKE sẽ ngăn không cho MySQL sử dụng chỉ mục. Tùy thuộc vào nhu cầu của bạn, bạn cũng có thể nhìn vào thứ gì đó như solr. –
@SeanBright Tôi đã thử sử dụng Match Against with Fulltext và nhận được kết quả bằng không. Tôi tiếp tục tìm kiếm này và đi qua này - http://stackoverflow.com/questions/5925369/mysql-join-and-match-against-search-fail dường như nó sẽ không hoạt động vì "dừng" từ. Tôi không quá tiến bộ trên mysql vì vậy tha thứ cho tôi nếu tôi bị mất. – SReca