假设我想选择所有不包含长词列表的行。让我们说这个列表只是为了这个例子而缩短为“example1”和“example2”。
我猜测使用REGEXP将是最好的选择,而不是指定
和字段不像'%example1%',字段不像'%example2%'
但我不知道该怎么做。 我猜这样的事情?
WHERE !REGEXP(field, '/example1|example2/')
答案 0 :(得分:1)
MySQL对正则表达式的支持非常有限,但我认为你可以使用这个解决方案:
SELECT *
FROM yourtable
WHERE
field NOT RLIKE '[[:<:]]example1[[:>:]]|[[:<:]]example2[[:>:]]'
其中[[:<:]]
和[[:>:]]
是字边界,以及|是OR运算符
答案 1 :(得分:1)
我会使用LOCATE:
set @string = '/example1|example2/';
select * from YourTable
where locate(YourStringField,@String) = 0