稍微细化一下问题
描述列包含 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/