如何从mysql查询中排除结果列表

时间:2014-03-21 15:49:08

标签: mysql matching

假设我想选择所有不包含长词列表的行。让我们说这个列表只是为了这个例子而缩短为“example1”和“example2”。

我猜测使用REGEXP将是最好的选择,而不是指定

  

和字段不像'%example1%',字段不像'%example2%'

但我不知道该怎么做。 我猜这样的事情?

WHERE !REGEXP(field, '/example1|example2/')

2 个答案:

答案 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

http://www.sqlfiddle.com/#!2/6d075/3