在MySQL上进行全文搜索:在一个数据库表中按多个单词执行搜索

LEGAToR:

我有用户数据库表:

|firstname|lastname|username|Country|id|
------------------------------------------------
|Ricky    |Jonh    |rjohn   |USA    |1 |
|Mery     |Cris    |mcris   |USA    |2 |
|Ricky    |Cris    |rcris   |Germany|3 |
|Michacle |Ricky   |mricky  |USA    |4 |
|Michacle |Jonh    |john    |USA    |5 |

如果用户输入:

  • “ Ricky”-搜索应返回3条记录(1、3、4)

  • “ Ricky USA”-应该返回2条记录(因为只有第一条和第三条记录的列中包含这些字词)

  • “ Ricky John USA”-仅返回第一条记录。

因此,搜索应返回记录,其中每个搜索词应在一个记录中,但可以在不同的列中。

有人可以分享一种方法如何在MySQL上实现这种搜索。

LEGAToR:

谢谢,琼斯

这是一个解决方案

  SELECT *,
  MATCH (firstname, lastname, username, Country) 
         AGAINST ('+Ricky +Cris +Germany' IN boolean MODE) AS score
  FROM user 
  WHERE MATCH (firstname, lastname, username, Country)
         AGAINST ('+Ricky +Cris +Germany' IN boolean MODE)
  ORDER BY score DESC

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在MySQL上进行全文搜索:连字符/破折号后无法按单词搜索

如何仅通过一个查询从mysql数据库中获取多个数据?

优化MySQL表以进行子字符串搜索(一个单词记录-字典)?

在数据库表中进行递归搜索,每行包括一个到N个父级

查询每个单词的首字母,并在一个查询中进行全文搜索

在多个数据库中进行Marklogic搜索

如何在连接多个表的MySQL中执行全文搜索

在一个表中显示多个数据库表

如何将一个大型数据库表拆分为多个数据库表

在两个字段上进行全文搜索比在一个字段上搜索更快

从多个数据库中搜索数据

在mysql中搜索一个单词

如何使用一个数据搜索两个Mysql表

在MySQL中的JSON字段上进行全文搜索

如何将多个数组放入一个数据库表

从multipul字段在MySQL数据库上进行AJAX搜索

如何使用一个搜索栏搜索数据库中的多列

如何使用SQL在一个数据库中搜索与另一个数据库中的值匹配的值

我如何在Mysql数据库中搜索多个单词搜索

Android仅显示我的第一个数据库搜索

如何在MySQL中按DMY格式从Mysql数据库中按日期列显示并基于它进行搜索

如何一次搜索多个数据库?

仅使用一个 dbContext 在多个数据库上执行投影

将大量 CSV 数据放入一个数据库中的新 MySQL 表中

mysql 一个或多个数据库?

将不同数据库中的多个数据保存到一个数据库中

Ansible:在rds中的多个数据库中执行一个sql脚本

在多个数据库中索引同一个表

在 C++ 中的多个线程中将表从一个数据库复制到另一个数据库