尝试进行php / mysql搜索,需要将字符串分解为数组并进行搜索

时间:2012-04-28 21:01:38

标签: php mysql arrays search

我的用户将搜索字词放在输入字段中。我使用的脚本存储在$ find变量中。然后它会像这样搜索mysql:

"select * from mytable WHERE title LIKE '%$find%' or description LIKE '%$find%'";

我希望能够得出一个结果,即使标题中有一个单词,而描述中另一个单词也是如此,目前还没有发生。所以..我猜我需要将$ find变量分解为带有函数的数组。之后,我将如何在mysql中进行搜索?因为我从来不知道搜索中会有多少单词(他们可能决定一次搜索8个单词),我如何在mysql查询中引用该数组?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您应该使用FULLTEXT索引并在其上构建正确的boolean search query

如果没有它,你可以达到你想要的效果,但与使用FULLTEXT索引相比,这会非常慢。您必须使用explode获取字词列表,然后构建WHERE条件,例如concat(title, description) LIKE '%word1%' AND concat(title, description) LIKE '%word2%'等。

(在我的第一个回答中,我说如果没有FULLTEXT就无法实现这种效果。我错了并编辑了这个答案。)