首页 > 解决方案 > 如何检查两个值是否存在于两列中或不在mysql中?

问题描述

我在一个chat表上有 3 列,其中id是一个自动增量主键,并且sender_id不是receiver_id空整数。

id sender_id receiver_id
1  1992      1332
2  1922      1232
3  1232      1211
4  1922      1211
5  1211      1922
6  1922      1211
7  1232      1211
8  1211      1922

现在,我想获得确切的id值,1922并且1211作为发送者或接收者相互交谈。

我试过了:

select * from chat where sender_id OR receiver_id= 1922

这给了我1922任何一列中存在的位置,但我不明白如何检查一行中是否存在两个值!

我需要从查询中得到的预期输出是ids4,5,6,8

标签: mysql

解决方案


你可以这样做:

select * 
from chat 
where (sender_id = 1922 OR sender_id = 1211) OR (receiver_id= 1922 OR receiver_id = 1211)

或者:

select * 
from chat 
where sender_id IN (1922,1211) OR receiver_id IN (1922,1211)

推荐阅读