在try 执行不区分大小写的搜索时,我遇到了MySQL全文索引的问题.我的数据库中有一个很大的列,用于存储数据,我希望能够搜索文本,而不区分大小写.例如,如果我的数据包含文本"be biopharma",我希望搜索"be"会返回此行,但它不会按预期工作.

我try 在MySQL中使用全文索引执行不区分大小写的搜索.我使用了以下SQL查询:

SELECT * FROM product WHERE MATCH(product.name) AGAINST ("+be*" IN BOOLEAN MODE);

当我搜索"be"时,我本以为该查询会返回包含文本"be biopharma"的行.但是,查询没有返回预期的结果.之所以出现这个问题,是因为MySQL的全文搜索在默认情况下区分大小写.我正在寻求有关如何修改查询或配置全文索引以正确执行不区分大小写的搜索的指导.

推荐答案

如果你想搜索2个字符的单词使用全文判断这documentation.您必须根据所使用的存储引擎进行配置.

此外,你的搜索"Be"是一个停顿词,判断这documentation.

  • 创建您自己的Stopword表[仅限InnoDb],如 文件
  • 然后,您必须重新构建索引.

Mysql相关问答推荐

了解查询中ORDER BY的行为

MySQL:统计单词在单元格中出现的次数,并将数字放在bra中单词的旁边

S在我的SQL代码中的外键出了什么问题?

如何在sql中包含0作为计数?

关于设置为 NOT NULL 时的 CHAR 默认值

如何解码存储在带有type*:前缀的base64中的数据?

Select 不同的列,其中另一列不包含特定值

为什么order by子句可以利用索引?

按年份范围 SQL 查询分组

MySQL 1292 截断不正确的日期时间值:'2020-09-11T08:32-50Z'

为什么 fetch 方法不能获取任何东西?(feat node.js,restAPI)

Mysql insert with loop out of select 语句

如何在 Mysql 中创建复合外键

在 PHP 中获取 MySQL 列的总和

将 Django DB 从 SQLite 迁移到 MySQL 的最佳方法是什么?

MySQL Partitioning / Sharding / Splitting - 走哪条路?

外键可以引用非唯一索引吗?

问号在 MySQL 中WHERE column = ?的意义是什么?

Python 是否支持 MySQL 准备好的语句?

mysql GROUP_CONCAT 重复