我有一个表,我想检查一列的所有值是否相同。
下面是我表中的条目。
两列

rid,value
(1,1)
(1,1)
(2,1)
(2,0)
(2,0)
(3,0)
(3,0)
(3,0)

我想要一个查询,它给我rid 1,因为它的所有值都是1。RID 1的所有记录都有值1,RID 2和3的所有值都不是1,因此不应选择它们。

最佳答案

使用group by和having可以得到您想要的:

    SELECT rid, value
    FROM my_table
    GROUP BY rid
    HAVING COUNT( distinct value) = 1

更新
根据注释,过滤该值将得到结果:
SELECT *
FROM
    (
    SELECT rid, value
    FROM my_table
    GROUP BY rid
    HAVING COUNT( distinct value) = 1
    ) AS T1
WHERE value = 1

如果值仅为1或0,则可以执行以下操作:
    SELECT rid, value
    FROM my_table
    GROUP BY rid
    HAVING COUNT( * ) = SUM(value)

关于mysql - 从一个表中选择查询以检查列中是否存在相同的值,mysql选择查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27339958/

10-12 19:25