我的数据库有 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/