mysql - 如何检查两个值是否存在于两列中或不在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
任何一列中存在的位置,但我不明白如何检查一行中是否存在两个值!
我需要从查询中得到的预期输出是ids
:4,5,6,8
解决方案
你可以这样做:
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)
推荐阅读
- c# - 读取存储帐户的防火墙 IP 列表
- php - Codeigniter 重定向不起作用 Ubuntu 18.04 LTS 服务器
- css - 动画“转发”不保持最后状态
- javascript - 如何使用 fetch 和 Authorization Header
- android - Textview中的文本剪辑
- php - 类别/产品页面上的 Magento 1.9 sql 注入
- c# - 使用 JsonConvert.DeserializeObject 反序列化 yyyyMMddTHHmmssZ DateTime 格式
- ios - 第一个元素标记空列表字符串。崩溃仅在生产中发生
- javascript - 将自定义 javascript 文件导出到 Vue 组件
- opencv - 使用opencv检测棋盘上方的手