mysql - SQL 选择其中 id = 'x' 的所有记录的状态为 'y'

标签 mysql sql

我有一个表incoming,其中包含电子邮件列表及其附件。

我导入每个附件并处理它们,此时该行被标记为 5

当单个电子邮件的所有行都标记为 5 时,我可以移动/删除电子邮件,因为它已被正确处理。

但是,我正在努力编写一个 SQL 查询来选择 msg_uid,其中具有相同 msg_uid 的所有行的状态为 5

示例表

 -----------------------------------------------------
 | id | STATUS | i2d_id | msg_uid | i2d_msg          |
 -----------------------------------------------------
 | 16 | 5      | 98390  | 53      | Result is ready. |
 -----------------------------------------------------
 | 17 | 3      | 98391  | 53      | Result is ready. |
 -----------------------------------------------------
 | 18 | 5      | 98392  | 53      | Result is ready. |
 -----------------------------------------------------
 | 19 | 3      | 98393  | 53      | Result is ready. |
 -----------------------------------------------------
 | 20 | 5      | 98394  | 53      | Result is ready. |
 -----------------------------------------------------

这不允许我删除电子邮件(有些状态为 3

但是

-----------------------------------------------------
| id | STATUS | i2d_id | msg_uid | i2d_msg          |
-----------------------------------------------------
| 16 | 5      | 98390  | 53      | Result is ready. |
-----------------------------------------------------
| 17 | 5      | 98391  | 53      | Result is ready. |
-----------------------------------------------------
| 18 | 5      | 98392  | 53      | Result is ready. |
-----------------------------------------------------
| 19 | 5      | 98393  | 53      | Result is ready. |
-----------------------------------------------------
| 20 | 5      | 98394  | 53      | Result is ready. |
-----------------------------------------------------

会成功的。

最佳答案

 SELECT msg_uid 
 FROM yourTable
 GROUP BY msg_uid 
 HAVING COUNT(*) = COUNT(CASE WHEN STATUS = 5 THEN 1 END)

关于mysql - SQL 选择其中 id = 'x' 的所有记录的状态为 'y',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41124502/

相关文章:

mysql - 如何使用 MySQL 查询添加更多条件?

php - 具有限制和大偏移量的 MySQL 查询永远占用

mysql - 字符集从 latin1 迁移到 utf8

MySQL 关系表和主键数据类型

java - 像oracle中的搜索一样吗?

c# - 将sql查询命令超时设置为max的负面影响

sql - 嵌套的 INSERT、UPDATE、DELETE 或 MERGE 语句必须在 UPDATE 中有一个 OUTPUT 子句

MySQL - 不同结果显示每组最新记录

mysql查询性能太低,如何提高

mysql - 如何从 postgres 中的查询生成子集?