mysql - 使用 MATCH AGAINST 查询字符串返回的不仅仅是严格等于字符串

标签 mysql match match-against

我正在尝试在 MySQL 中使用 MATCH AGAINST 选择产品。

标题的长度指定为单个数字加上表示米的字母m,即1m2m5m

当我尝试将 5m network cable 与下面的查询匹配时,它还会返回 0.5m network cable1.5m network cable 等.

如何在 2 个字符的字符串上得到一个精确的单词 MATCH

我的查询:

SELECT title, category, price
FROM products_table
USE index (prod_idx)
WHERE (MATCH (title) AGAINST ('+"5m" +"network" +"cable"' IN BOOLEAN MODE))

最佳答案

问题是 FULLTEXT 想到了 '.'作为单词的结束符/起始符/分隔符,但您想将其视为字母。所以,把它变成一封信:

插入数据时,将'.'改为到 '_' 使 0.5m 变成 0_5m,这将被视为一个词。在搜索字符串中进行相同的更改。

关于mysql - 使用 MATCH AGAINST 查询字符串返回的不仅仅是严格等于字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28920176/

相关文章:

php - 使用 jquery autosuggest 从多个表中选择

python - 如何使用 python 匹配文本文件中的单词?

javascript - 正则表达式连续收集单词数组中的任何单词

MySQL 选择 MySQL 结果子集中最接近的匹配

mysql - 未找到与查询数值匹配的值

MySQL - 具有特定搜索值 'course' 的 FULLTEXT 搜索问题

php - 使用 PHP 进行正确且方便的错误处理和日志记录

php - 创建 SQL 语句通过比较一行中的两个字段来查询 MySQL 数据库

php - 在Query中获取MYSQL查询执行时间

MySQL 在 MyISAM 中匹配 0 结果,但在 InnoDB 上工作