Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对字符串进行匹配的查询返回的字符串不仅仅是严格相等_Mysql_Match_Match Against - Fatal编程技术网

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

我试图使用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 BOOLEAN MODE))

问题是全文将“.”视为一个单词ender/starter/separator,但您希望将其视为一个字母。所以,把它变成一封信:


插入数据时,将“.”更改为“5m”,使0.5m变为0_5m,这将被视为一个字。在搜索字符串中做同样的更改。

我不是SQL专家,因此我没有答案,但可能是因为
1.5m电缆
未被选中,因为它包含
5m
,而是因为它包含
电缆
,否则,您可能会有一个OR操作,而不是您想要的AND。没有匹配的经验,但有一些关于全文索引的经验,我脑海中闪现的是,
符号被解释为句子的结尾,而不是小数符号。这就是你的结果。但是,不知道如何配置mysql。也许是语言环境?还有一个问题,就是对被忽略的短单词进行全文搜索。以防万一。