我试图在mysql中执行正则表达式匹配,以便在字符串的一部分不存在时匹配字符串。即
src="/images/(?legacy)
如果字符串src="/images/
存在但字符串legacy
不存在。
有什么想法吗?
答案 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%'
)