可以在 Mysql 中否定正则表达式模式吗?我知道通常我们可以使用 否定模式?!
,但这在 Mysql 中不起作用。
我需要实现的是否定匹配某些二进制的结果,例如.0.0..0.
,这意味着当第二、第四和第七是零时不计算在内。我不能使用NOT REGEX
,因为我正在构建 mysql 程序,该程序预计将与其他条件一起使用。
任何想法表示赞赏,非常感谢。
几乎所有“负正则表达式”匹配问题都有一个通用解决方案:使用一些逻辑将其转换为正匹配问题。
这通常比尝试构建匹配“除此模式之外的所有内容”的正则表达式更容易。
在这种情况下,这很简单:
select * from table
where column_name regex '[pattern]' = 0
您可以使用NOT REGEX
:
SELECT * FROM table
WHERE column_name NOT REGEX '^your[[:space:]]pattern here'
从Erick Jimenez 的评论中窃取。我认为这比dan1111 的回答要好。
你也可以这样做NOT (any expression)
也行NOT (column_name REGEXP 'pattern')
。
您可以FULLTEXT
在该列上添加索引并使用布尔全文搜索