SRe*_*eca 7 php mysql search join sql-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"
Run Code Online (Sandbox Code Playgroud)
当我进行诸如"蓝色"或"耐克"之类的搜索时,这样可以正常工作,但如果我进行诸如"蓝色耐克"之类的搜索,则无法返回.我应该用FULLTEXT吗?我怎样才能改善这个?我希望能够搜索可能与搜索变量相关的所有列.
因此,在搞乱并测试不同的东西之后,我想出了这个:
"FROM Shoe AS s
LEFT JOIN Accounts AS a ON s.UserID = a.ID
WHERE (MATCH (s.Brand, s.Name, s.PrimaryColor AGAINST('$Search' IN BOOLEAN MODE)
OR MATCH (a.User) AGAINST('$Search' IN BOOLEAN MODE))
AND s.Publish='1'
ORDER BY s.ID DESC"
Run Code Online (Sandbox Code Playgroud)
这似乎解决了我上面提到的问题,我现在可以进行搜索,例如“Blue Nike”,所有与 blue & nike 相关的项目都会显示出来。不确定这是否是最有效的方法,但它确实有效。