如何在mysql中使用JOIN搜索改进我的LIKE?

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吗?我怎样才能改善这个?我希望能够搜索可能与搜索变量相关的所有列.

SRe*_*eca 1

因此,在搞乱并测试不同的东西之后,我想出了这个:

"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 相关的项目都会显示出来。不确定这是否是最有效的方法,但它确实有效。