MySQL Regex用于排除字符串

时间:2014-08-11 20:16:38

标签: mysql regex

我试图在mysql中执行正则表达式匹配,以便在字符串的一部分不存在时匹配字符串。即

src="/images/(?legacy)

如果字符串src="/images/存在但字符串legacy不存在。 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

MySQL regexen不支持否定前瞻,所以我认为你最好的选择是使用两个来使用LIKE

string LIKE '%src="/images/%'
AND string NOT LIKE '%src="/images/legacy%'

请注意,此查询效率低(因为它将使用regexen)。

答案 1 :(得分:1)

我知道这不是你要问的问题,但是MySQL正则表达式不支持负向前瞻,AFAIK mysql正则表达式不使用索引。

所以我认为你可能会过度思考它,因为正则表达式会更短(如果它可以工作,它不能)但传统的LIKE更快。

我建议您只使用:

WHERE (
   content LIKE '%src="/images/%' 
   AND 
   content NOT LIKE '%src="/images/legacy%'
)