不能与OR运算符MYSQL一起使用

时间:2018-11-30 18:17:50

标签: mysql notin or-operator

我要选择发件人不等于任何列表元素的行,如果不相等,请检查收件人是否不相等等于任何列表元素。使用NOT IN()具有OR运算符,例如:

SELECT * FROM messages WHERE ((sender NOT IN ( 'user1','3' )) OR (recipient NOT IN ( 'user1','3' ))) 

问题:

  

这不是像以前那样过滤数据并给出结果!

尽管这确实可行:

SELECT * FROM messages WHERE (recipient NOT IN ( 'user1','3' )) 

应该更改什么?

2 个答案:

答案 0 :(得分:0)

对于以后的读者来说,以上评论使我对如何在“不使用”中使用“或”进行了了解,

SELECT * FROM messages WHERE (sender OR recipient NOT IN ( 'user1','3' )) 

答案 1 :(得分:0)

您需要

where
   NOT (   sender IN ( 'user1','3' )
        OR recipient IN ( 'user1','3' )
       )

因此,在这里,包装的OR条件为...发送者是列表之一,或者接收者是列表之一。外层抛出NOT。