我要选择发件人不等于任何列表元素的行,如果不相等,请检查收件人是否不相等等于任何列表元素。使用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' ))
应该更改什么?
答案 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。