1

我想为我的网站制作一个搜索工具。

如果我搜索一个短语,我希望它搜索多个列

例如,如果我搜索 dewalt Drill 并且标题有作品 dewalt 电钻,我希望它出现。

另外,如果我搜索 dewalt 钻头并且瓷砖有 dewalt 并且描述有钻头,我希望它出现。

但搜索的所有单词必须包含在任何字段组合中。

有人可以帮我查询吗?

目前:

{Select * from products where sku like '%{$searchwords}%' or title like '%{$searchwords}%' or desc like '%{$searchwords}%}
4

2 回答 2

1

您可能想要FULLTEXT搜索(从 MySQL 5.6 开始,这也可用于 InnoDB 表)。您可以要求所有带有BOOLEAN MODE.

于 2013-10-27T20:29:44.333 回答
1

如果您的表是 myisam,您可以创建一个全文索引,然后在布尔模式下使用

添加密钥:

alter table products ADD FULLTEXT (sku, title, desc)

那么您的查询将是:

 $searchwords = join(' +', explode(' ', $searchwords));

 $query = "SELECT * FROM products WHERE MATCH (sku, title, desc) AGAINST ('{$searchwords}' IN BOOLEAN MODE)";
于 2013-10-27T20:31:27.007 回答