mysql - 检查 string1 的任何部分是否与 string2 的任何部分匹配

标签 mysql database select mariadb

我有简单的搜索功能,使用

WHERE data LIKE '%keyWord%';

但是如果我使用很多关键词怎么办

“很多关键词”

我的数据包含

“一些关键数据”

即使有一个单词匹配(在本例中为“key”),我也希望它们能够匹配。 这可以通过一个 MySQL 查询来实现吗?

最佳答案

除非您的表包含几行,否则应避免使用“%text%”这样的行,因为无法使用索引。

相反,您应该考虑在列数据上添加全文索引并执行全文搜索,例如

ALTER TABLE mytable ADD FULLTEXT(data);
SELECT col1, col2, ... FROM mytable WHERE match(data) AGAINST("word1 word2 word3" in BOOLEAN MODE);

关于mysql - 检查 string1 的任何部分是否与 string2 的任何部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41387882/

相关文章:

php - while 循环中的 while 循环

c# - C# 是否有某种自己的客户端数据库实现

ruby-on-rails - 将外部数据库连接到 Rails 4 App 时出错

php - MySQL 行选择

javascript - HTML 选择下拉菜单,Jquery 问题

mysql - 计算每个类别的帖子数

mysql - 案例 when then,但在 when 和 before then 内有 AND 条件

MySQL:分组统计后得到总查询数

sql - 如何为表中的每个 id 运行此查询

mysql - 检索上个月上传的数据