You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按多组条件从MySQL数据集查询指定数据?

如何编写SQL语句匹配多组(status, timestamp)条件?

嗨,我来帮你搞定这个问题!你想要匹配多组不同的status和timestamp组合,其实不用写一堆单独的查询,MySQL里有两种很实用的写法可以直接实现你的需求。

方法1:用IN搭配元组(最简洁的方式)

这种写法直接把你需要的每一组(status, timestamp)作为元组放进IN条件里,代码非常清爽:

SELECT id, status, timestamp
FROM your_table_name
WHERE (status, timestamp) IN (
    (1, '2019-04-29'),
    (2, '2019-04-05'),
    (3, '2019-04-04')
);

这里数据库会直接检查每一行的status和timestamp是否属于你指定的组合集合,完全符合你想要的逻辑,返回的结果就是你期望的那三条数据。记得把your_table_name替换成你实际的表名哦。

方法2:用OR连接多个条件(和你原逻辑直接对应)

如果你需要对某些组合添加额外的判断逻辑,也可以用OR把多个AND条件连起来,这个写法和你原本列出的多个WHERE逻辑完全对应:

SELECT id, status, timestamp
FROM your_table_name
WHERE 
    (status = 1 AND timestamp = '2019-04-29')
    OR (status = 2 AND timestamp = '2019-04-05')
    OR (status = 3 AND timestamp = '2019-04-04');

每个括号里的部分就是你原本单独写的WHERE条件,用OR连接后,只要满足其中任意一组条件的行都会被筛选出来。

两种方法都能得到你想要的结果,当需要匹配的组合数量较多时,第一种方法会更易读也更易维护。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:26:49