我遇到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行,因为该关键字“钻石”在搜索中。
答案 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',这将是有效的。 当您输入“黄金”或“青铜钻石”时,它会显示三条记录。