排除结果时,MySQL NOT REGEXP无法正常工作

时间:2018-12-18 14:40:52

标签: mysql regex

我只希望行中不包含REGEXP中匹配的任何单词,但是某种程度上它不能正常工作。

我发现这是不包含20行

的替代方法
AND user_agent NOT LIKE 'word'

但是我的REGEXP似乎坏了,这是一行:

AND user_agent NOT REGEXP '/(ligatus|googlebot|appengine|Mediapartners-Google|semrushbot|ipad|iphone|android|admantx|MJ12bot|CCBot|bingbot|HybridBot|crawler)/gmi'

1 个答案:

答案 0 :(得分:1)

正如评论所指出的那样,您的REGEXP表达式中有一个语法上的小问题。但是,除此之外,您还应该在单词边界周围加上交替字符,因为您要匹配/不匹配整个单词,而不要匹配可能显示为子字符串的单词。

WHERE user_agent NOT REGEXP '[[:<:]](ligatus|googlebot|appengine)[[:>:]]'

我只包括了前三个术语,所以它可以放在一行中,但是您可以使用完整的替换形式。