mysql全文搜索无法搜索美元符号?

标签 mysql

稍微细化一下问题

描述列包含 USD$15,USD15 在一堆文本中。

在 bool 模式下使用全文搜索但返回空结果

从书籍中选择 * WHERE MATCH (描述) AGAINST ('USD$15' IN BOOLEAN MODE); 空集(0.00 秒)

但是

从书籍中选择 * WHERE MATCH (描述) AGAINST ('USD15' IN BOOLEAN MODE);

成功……

最佳答案

不要对价格使用全文搜索,因为它旨在产生查询和适当文本之间的相关性。因此它允许在大量文本中搜索特定关键字。索引包含单词的标记化版本,不能用于逐字符匹配。

改用 DECIMAL(15,4) 之类的内容,并将货币设置移动到单独的字段 (ENUM/TINYINT)

在最坏的情况下(您不能影响表结构和插入的数据) - 您可以将常规 CHAR/VARCHAR 与 BTREE 索引结合使用,并通过 WHERE Price LIKE ... 方法进行搜索。

关于mysql全文搜索无法搜索美元符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18660603/

相关文章:

mysql - 如何跨不同数据库维护外键约束?

php - 获取指定数量的列

php - 更有效地访问多维数组

mysql - 查找以不同子字符串开头和结尾的字符串,然后插入到新列中

MySQL查询删除日期接近另一行的行

mysql - 使用 WHERE 条件作为查询结果中的列名

php - 如何同时生成使用 DOMPDF 生成的 PDF 并通过电子邮件发送?

mysql - STR_TO_DATE 替换非英文月份名称

mysql - 如何用增量值更新表中的所有记录?

mysql - 如何在排序的顶部获得 NULL?