带有全文搜索通配符的 MySql MyIsam 表

标签 mysql wildcard myisam full-text-indexing

我创建了两个具有相同列的两个不同存储引擎的表: table1(id,col1,col2) MyIsam 表 2(id,col1,col2) innodb 每张表包含 1700000

我在 2 个表中为 (col1,col2) 创建了全文索引 我有 2 个关键字,我需要提取包含它们的结果: “学校”和“公共(public)汽车” 我正在使用通配符来提取它们 select * from table1 其中 match(col1,col2) against ('+scho*+bus*')

  • 表示完整截断的词
  • 均值和

在 table1(MyIsam) 中结果不正确, 总共 26573,查询耗时 0.0009 秒 行包含任何关键字“学校”或“公共(public)汽车”

在 table2(innodb) 中结果是正确的, 总共 369 个,查询耗时 0.0420 秒 行包含“学校”和“公共(public)汽车”这两个词

谁能帮帮我?

最佳答案

我通过在 + 前加空格解决了这个问题 匹配 (col1,col2) 与 ('+scho* +bus*')

但是我还有一个问题,如果我想通过任何以任何东西结尾的关键字搜索,它无法显示, 如果我按关键字“学校”搜索 将 (col1,col2) 与 ('+chool') 匹配 0 行

关于带有全文搜索通配符的 MySql MyIsam 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30456116/

相关文章:

php - 我将如何使用 php 在 Mysql 中存储一些加密的字符串?

mysql - 只显示大于 100 的值 mysql

sql-server-2008 - 从多个表中选择相同的列是否有 UNION 的替代方法?

mysql - 处理巨大的MyISAM表以进行优化

mysql - 如何在表的另一行和变量插入表?

php - 日期和当前时间之间的时差?

java - JLS如何规定不能在方法中正式使用通配符?

bash - 双星号 (**) 通配符是什么意思?

MySQL 共享托管 : db is MyISAM, 尽管所有创建的表都是 InnoDB。我可以切换吗?我是不是该?

mysql - 在线时向大型 MySql 表添加一列