Mysql MATCH AGAINST - IN BOOLEAN MODE问题

时间:2010-07-17 11:10:48

标签: mysql search match against

我需要找到以下字符串:'c ++'

我的sql查询如下所示:

SELECT *
FROM shop_product
WHERE
   MATCH(shop_product.name, shop_product.product_model, shop_product.keywords, shop_product.part_number, shop_product.upc, shop_product.brand_name)
   AGAINST ('c++' IN BOOLEAN MODE))
GROUP BY `product_id`
LIMIT 0, 25

即使存在包含该单词的记录,此脚本也不会返回任何结果。 怎么解决这个问题?

感谢。

3 个答案:

答案 0 :(得分:2)

在BOOLEAN MODE或NATURAL MODE中不搜索少于四个字符的单词。

答案 1 :(得分:1)

“+”不是“单词”字符。可能你必须使用LIKE或REGEXP。

答案 2 :(得分:0)

您可以在没有BOOLEAN MODE的情况下进行搜索:

SELECT *
FROM shop_product
WHERE
   MATCH(shop_product.name, shop_product.product_model, shop_product.keywords, shop_product.part_number, shop_product.upc, shop_product.brand_name)
   AGAINST ('c++'))
GROUP BY `product_id`
LIMIT 0, 25

我认为+只是布尔模式的一个特殊字符。