0

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

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

我希望能够提取结果,即使标题中有 1 个单词,描述中有另一个单词,目前还没有发生。所以.. 我猜我需要将 $find 变量分解成一个带有函数的数组。之后,我将如何在 mysql 中进行搜索?由于我永远不知道搜索中有多少单词(他们可能决定一次搜索 8 个单词),我如何在 mysql 查询中引用数组?

提前谢谢!

4

1 回答 1

1

您应该使用 FULLTEXT 索引并在其上构建适当的布尔搜索查询

没有它你可以达到你想要的效果,但是与使用 FULLTEXT 索引相比,这会很慢。您将不得不使用explode来获取单词列表,然后建立一个WHERE类似的条件concat(title, description) LIKE '%word1%' AND concat(title, description) LIKE '%word2%'

(在我的第一个答案中,我说没有 FULLTEXT 就不可能达到这种效果。我错了,编辑了这个答案。)

于 2012-04-28T21:07:56.270 回答