如何在MySQL中对多个关键字进行WHERE LIKE查询?

时间:2016-03-01 01:25:14

标签: php mysql sql

我遇到like查询的问题,我希望搜索字段返回任何带有'gold or diamond of bronze'的字段。用户键入搜索引擎中的黄金,并且不返回任何数据。这是查询:

$sql = ("SELECT metals,  FROM metaltable WHERE search LIKE '%$usersearch%'");

因为字符串包含'what is gold',所以它不会返回任何数据,如果我输入黄金,那么它会返回数据,因为它没有'what is'

表格结构是:

    ***metaltable***
 id      metals
1        gold
2        silver
3        bronze
4        diamond

无论用户在搜索引擎中输入多​​少个字符,我希望查询返回带有关键字的任何行。

例如,如果用户搜索钻石的组件,我希望查询返回第4行,因为该关键字“钻石”在搜索中。

1 个答案:

答案 0 :(得分:0)

SELECT DISTINCT Keyword,b.metals 
FROM(
      SELECT 'usersearch' AS Keyword
      FROM metaltable  
    ) AS a 
INNER JOIN metaltable AS b
ON a.Keyword like '%'+b.metals+'%'

将您的用户输入添加到' usersearch',这将是有效的。 当您输入“黄金”或“青铜钻石”时,它会显示三条记录。