我有一张表,我想检查一列的所有值是否相同。
以下是我表格中的条目。
两列
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 select query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27339958/