首页 > 解决方案 > MySql:如何选择所有值都相同的行?

问题描述

我有一张这样的桌子:

name |id | state
name1 12   4
name1 12   4
name2 33   3
name2 33   4
...

我想从状态仅为4 的表中选择每个名称和 ID,这意味着name1是正确的,因为它只有两条状态为 4 的记录,仅此而已。同时name2是错误的,因为它有状态4记录和状态3的记录。

标签: mysql

解决方案


您可以使用聚合,如下所示:

SELECT name, id
FROM your_table
GROUP BY name, id
HAVING SUM(state<>4)=0;

请参阅SQL Fiddle 上的演示


推荐阅读