mysql - 如何使用 like 进行良好的 sql 搜索

标签 mysql sql

多年来,当我希望我的用户在我的数据库中搜索某个字段时,他可以在其中键入他想要的任何内容,我使用一种算法来分解单词并单独搜索每个单词……一团糟。

例如,如果用户在搜索框中键入“aaa bbb ccc”,我不喜欢使用:

SELECT id 
  FROM table 
 WHERE description LIKE '%aaa bbb ccc%'

因为有时用户输入的内容顺序不对,上面的查询将找不到。我通常做的是分解字符串并将其与 PHP 连接起来,这样结果就变成了:

SELECT id 
  FROM table 
 WHERE description LIKE '%aaa%' 
   AND description LIKE '%bbb%' 
   AND description LIKE '%ccc%'

但今天在与 friend 交谈后,我想知道是否有一些 native 方法可以使用 MY SQL 更快地完成此操作?

最佳答案

你想做的叫做full text search现在大多数关系数据库都支持它,包括 mysql。

关于mysql - 如何使用 like 进行良好的 sql 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46394177/

相关文章:

javascript - 如何在具有文件 jquery.dataTables.js 的 jquery 插件中对同一列中的日期和字符串进行排序?

php - 在 YouTube 上吸引订阅者

php - 如何统计mysql中DATE类型一年重复的次数?

mysql - SQL 按 ASC 和 DESC 排序

c# - ORM 的哪些选择允许接近 'flick a switch' 在...SQL Server/SQL Azure 和 PostgreSQL/'Cloud' PostgreSQL 之间更改 RDBMS

java - 如何避免 c3po 中的连接超时?

php - 每天无法跟踪独特的产品 View

php - 如何从 1 列中选择具有许多 id 不同的数据 mysql

sql - 如何确定数据库的类型 - 旧的遗留企业数据库

java - 使用向前和向后导航结果集