Mysql 对字符串进行匹配的查询返回的字符串不仅仅是严格相等
我试图使用MySQL中的Mysql 对字符串进行匹配的查询返回的字符串不仅仅是严格相等,mysql,match,match-against,Mysql,Match,Match Against,我试图使用MySQL中的匹配来选择产品 标题的长度指定为一位数字加上米的字母m,即1m、2m、5m等 当我尝试将5m网线与下面的查询匹配时,它还返回0.5m网线,1.5m网线等 如何在2个字符的字符串上获得精确的单词匹配 我的问题是: SELECT title, category, price FROM products_table USE index (prod_idx) WHERE (MATCH (title) AGAINST ('+"5m" +"network" +"cable"' IN
匹配来选择产品
标题的长度指定为一位数字加上米的字母m
,即1m
、2m
、5m
等
当我尝试将5m网线
与下面的查询匹配时,它还返回0.5m网线
,1.5m网线
等
如何在2个字符的字符串上获得精确的单词匹配
我的问题是:
SELECT title, category, price
FROM products_table
USE index (prod_idx)
WHERE (MATCH (title) AGAINST ('+"5m" +"network" +"cable"' IN BOOLEAN MODE))
问题是全文将“.”视为一个单词ender/starter/separator,但您希望将其视为一个字母。所以,把它变成一封信:
插入数据时,将“.”更改为“5m”,使0.5m变为0_5m,这将被视为一个字。在搜索字符串中做同样的更改。我不是SQL专家,因此我没有答案,但可能是因为1.5m电缆
未被选中,因为它包含5m
,而是因为它包含电缆
,否则,您可能会有一个OR操作,而不是您想要的AND。没有匹配的经验,但有一些关于全文索引的经验,我脑海中闪现的是,
符号被解释为句子的结尾,而不是小数符号。这就是你的结果。但是,不知道如何配置mysql。也许是语言环境?还有一个问题,就是对被忽略的短单词进行全文搜索。以防万一。