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

标签 mysql sql match-against

我的 MATCH AGAINST 查询有问题。当我传递 onlu 数值时,我在查询中得到 0 结果,这是我的查询:

SELECT * FROM tbl1 WHERE MATCH(Sub_Name) AGAINST('+praga*' IN BOOLEAN MODE) AND MATCH(Sub_Address) AGAINST('+203 *' IN BOOLEAN MODE)//结果找到 0 行

SELECT * FROM tbl1 WHERE MATCH(Sub_Name) AGAINST('+praga*' IN BOOLEAN MODE) AND MATCH(Sub_Address) AGAINST('+203 s*' IN BOOLEAN MODE)//找到结果

当我在 (203) 中使用任何数字时,我得到 0 结果,但我使用任何带有 203 的字符,然后找到结果, 我的地址字段值为“203 surat”

最佳答案

这是因为通配符 * IN BOOLEAN MODE 返回以附加的单词开头的匹配项。在你的情况下,我想没有任何单词以 203 开头。因此,您必须指定充当匹配起始部分的单词/字母。在你的情况下是“S”

引用The asterisk serves as the truncation (or wildcard) operator. Unlike the other operators, it should be appended to the word to be affected. Words match if they begin with the word preceding the * operator.

关于mysql - 未找到与查询数值匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27171514/

相关文章:

mysql - 特殊字符奇怪的行为

php - #1241 - 操作数应包含 1 列

php - 将一个表的字段与另一个表的其他字段进行比较

sql - 条件检查,多列的单值/多值,逗号分隔列

mysql - 仅当在另一个字段中输入非 NULL 值时才更新时间戳

c# - 换出数千个值的效率

php - mysql phpmyadmin 删除表超时,现在无法打开也不会被删除

MySQL 匹配和喜欢

php - 如何使用 MySQL MATCH AGAINST IN BOOLEAN MODE 返回关键字字符串中至少 1 个匹配关键字的结果?

mysql - 在公共(public)数据上对逗号分隔值进行分组