我有一个问题。
在我的 MySql 数据库中,我在产品表中有 40000 行。表有一个名为T9Text的列。我的 T9Text 行区域之一是这样的:
UNISNLS106B UNI.SNLS 106B SNLS-106B M.OT. 12V 2Delïkotorcrafttİpİunipoint 66-205 66205 F02Z-11390-A F02Z11390A E90Z-111390-A E90Z11390A F4DZ-11390-A
对于自动完成过程,我在 db 中运行了一个存储过程。是这样的:
SELECT p.Code,
p.Name,
p.`T9Text`,
MATCH (p.T9Text) AGAINST ('+UNI* +SNLS* +106B*' IN BOOLEAN MODE) AS SCORE
FROM product p
WHERE MATCH (p.T9Text) AGAINST ('+UNI* +SNLS* +106B*' IN BOOLEAN MODE) >0
GROUP BY p.Name
ORDER BY SCORE DESC
像这样,它工作得很好并且只返回一行。
但我需要像这样写我的 where 条件:
MATCH (p.T9Text) AGAINST ('+*UNI* +*SNLS* +*106B*' IN BOOLEAN MODE) >0
使用上面的代码,它返回 1877 行。就像加号不起作用
MATCH (p.T9Text) AGAINST ('+*UNISNLS106B*' IN BOOLEAN MODE) >0
MATCH (p.T9Text) AGAINST ('+*NISNLS106B*' IN BOOLEAN MODE) >0
第一个查询返回 1 行,但第二个查询返回 0 行。
所以,有我的问题:在mysql全文搜索中,我不能使用+测试表达式吗?如果没有,有没有办法做到这一点?(喜欢除外)