MySQL正则表达式返回两列之间至少有一个单词匹配的所有记录

标签 mysql regex

我的数据库有 2 列包含文本。当有3条记录时如下:

rec#   col1             col2
1      my name is       fred is
2      john             mike
3      today not sat    not it sat

我希望能帮助您构建一个返回记录号的正则表达式:

1 -> 因为“is”匹配

3 -> 因为“'not”和“sat”匹配(即至少存在一个匹配项)

最佳答案

我认为你可以这样做:

select t.*
from table t
where col1 rlike replace(col2, ' ', '|');

这会将 col2 转换为正则表达式。因此,请注意,这个答案对 col2 的内容非常敏感。如果它包含正则表达式特殊字符,那么这可能不起作用。

关于MySQL正则表达式返回两列之间至少有一个单词匹配的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32414104/

相关文章:

c# - 匹配字母数字和空格的正则表达式

regex - 如何获取满足一定条件的$Matches索引的索引?

c# - 如何保持平板电脑数据库同步

python - mysqldb没有安装

没有来自另一列的交叉的 MySQL GROUP BY

php - 如何从php中的两个表中选择数据

mysql - 加快从大型整数表中选择 SQL 查询的速度

python - 使用正则表达式检查测试字符串是否为固定格式

c# - 用于检测 WinForms 中 SQL 注入(inject)的正则表达式

c# - 不使用 XML 解析器从 XML 文档中提取数据