我已经搜索了很多,之前我曾经有过类似的工作,但我无法理解为什么这不会产生我期望的结果。
假设我在名称,制造商,型号或描述中有'test6',我希望搜索'tes',但使用下面的查询它不会像我期望的那样返回。
我也试过'测试'用'反对'(测试'+在BOOLEAN模式等等。任何帮助将不胜感激。
ALTER TABLE productinfo ADD FULLTEXT(name, manufacturer, model, description);
SELECT id, name,category_id, price, manufacturer, model, shortdescription,
description,stockqty,shippingbase,shippingcost, buyitnow,auctionitem,
MATCH (name, manufacturer, model, description)
AGAINST('tes'* IN BOOLEAN MODE) as score
FROM productinfo
WHERE MATCH (name, manufacturer, model, description)
AGAINST('tes'* IN BOOLEAN MODE) ORDER BY score DESC
已解决,注意:经过一些研究后,它是一个星号,需要在搜索词之后(在本例中为'tes')所以AGAINST('tes'*在BOOLEAN MODE中);
答案 0 :(得分:0)
此查询遇到两个问题。
AGAINST('test*' IN BOOLEAN MODE)
中,或者您可以使用正则表达式或locate()