我有一个表,我想检查一列的所有值是否相同。
下面是我表中的条目。
两列
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/