Mysql全文检索查询

标签 mysql full-text-search

我的 mysql 表中有一个名字和一个姓氏字段。我不知道用户在一个字段中输入名字和姓氏的顺序。 我的全文索引位于 PERSONEN_VNAME 和 PERSONEN_NAME 所以他可以写“tester a”或“a tester”。

我找到了这两个人:

  1. 姓氏:TESTER,名字:Andrea
  2. 姓氏:测试员,名字:A

我尝试了这个查询:

SELECT PERSONEN_ID,PERSONEN_VNAME, PERSONEN_NAME FROM
 PATIENT WHERE match(personen_name,personen_vname) against
('+tester* +a* ' IN BOOLEAN MODE)

查询仅返回测试者 Andrea,但不返回测试者 A。

为什么!?

编辑:sql fiddle :http://sqlfiddle.com/#!2/21f29/1

最佳答案

使用这个:-

SELECT PERSONEN_ID,PERSONEN_VNAME, PERSONEN_NAME FROM
 PATIENT WHERE match(personen_name,personen_vname) against
('+tester* +a% ' IN BOOLEAN MODE)

查看此fiddle

关于Mysql全文检索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16102634/

相关文章:

mysql - 如何将 SQL 表行与 XML 命名空间元素进行匹配?

mysql - 加速 perl DBI fetchrow_hashref

mysql - 全文搜索在测试和现场返回不同的结果

postgresql - 了解全文搜索查询中子句顺序的影响

mysql - 如果涉及到mysql全文,其他索引还算吗?

php - 我们可以在 insert into 语句中传递 where 条件吗?如果不是,Codeigniter 中的解决方案是什么?

mysql - 在 union select mysql 中使用月份名称而不是数字

mysql - 如何在 Slick 中使用 IN 子句?

mongodb - MongoDB 如何处理文本索引和文本分数中的文档长度?

ruby-on-rails - 如何在 Ruby on Rails 中进行全文搜索?