开发者

Mysql MATCH AGAINST - IN BOOLEAN MODE problem

I need to find the following string: 'c++'

My sql query look like this:

SELECT *
FROM shop_product
WHERE
   MATCH(shop_product.name, shop_produc开发者_C百科t.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

This script does not return any results even if there exists records containing that word. How to solve this?

Thanks.


Words with less than four characters are not searched in BOOLEAN MODE or NATURAL MODE.


"+" isn't a "word" character. Probably you have to use LIKE or REGEXP.


You could search without 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

I think the + is just for boolean mode a special character.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜