我的用户将搜索字词放在输入字段中。我使用的脚本存储在$ find变量中。然后它会像这样搜索mysql:
"select * from mytable WHERE title LIKE '%$find%' or description LIKE '%$find%'";
我希望能够得出一个结果,即使标题中有一个单词,而描述中另一个单词也是如此,目前还没有发生。所以..我猜我需要将$ find变量分解为带有函数的数组。之后,我将如何在mysql中进行搜索?因为我从来不知道搜索中会有多少单词(他们可能决定一次搜索8个单词),我如何在mysql查询中引用该数组?
提前谢谢!答案 0 :(得分:1)
您应该使用FULLTEXT索引并在其上构建正确的boolean search query。
如果没有它,你可以达到你想要的效果,但与使用FULLTEXT索引相比,这会非常慢。您必须使用explode
获取字词列表,然后构建WHERE
条件,例如concat(title, description) LIKE '%word1%' AND concat(title, description) LIKE '%word2%'
等。
(在我的第一个回答中,我说如果没有FULLTEXT就无法实现这种效果。我错了并编辑了这个答案。)