mysql - 从一个表中选择查询以检查列中是否存在相同的值,mysql select query

标签 mysql database sqlite select select-query

我有一张表,我想检查一列的所有值是否相同。

以下是我表格中的条目。

两列

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/

相关文章:

mysql - 查询以使用 order by 子句获取下一条记录

php - 最喜欢的帖子脚本

python - 在 python-django 中移动数据库

PHP编码问题

php - PHP脚本。检查用户是否已经在MySQL数据库中

php - 使用数组过滤 SQL 查询

mysql - 是否应该在用户可以选择多个选项的结构中使用外键?如果是这样,怎么会这样?

mysql - 根据重叠限制排除行 (SQL)

android - Sqlite 全文搜索压缩

mysql - 具有多个数据库的共享服务器上的 SaaS 应用程序