mysql - 检测表格中的模式

标签 mysql sql database

有一个这样的表:

Table: statuses
ID  | status
----|---------
777 | 1
675 | 1
651 | 0
611 | 1
600 | 0
554 | 1
443 | 0
323 | 0
222 | 1
112 | 1

如何只选择行中两个(或多个)状态为0的行? (示例中只有 443、323),并按系列中的第一个 ID 将它们分组。

所以输出将是:

ID  | status | group
----|--------|---------
443 | 0      | 443
323 | 0      | 443

最佳答案

如果编程方法不可行,您可以尝试此查询(尽管它的性能会更差)。

 select
    s.id,
    0 as status,
    group_field.id as group
from 
    statuses s,
    (select id from statuses where status = 0 group by id having count(1) > 1 limit 1) group_field
where 
    s.id in(select id from statuses where id = 0 group by id having count(1) > 1)

关于mysql - 检测表格中的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669586/

相关文章:

mysql - 计算不同的和重复的mysql

asp.net - VB.net (aspx) mysql连接

database - 移动应用程序的后端 - 使用哪个以及为什么?

ruby-on-rails - 如何将已添加的字符串列更改为 Rails 中的引用

java - hibernate 3 : unable to query PostgreSQL database

清理所有数据的 PHP 函数

php - 来自主键的唯一 url

sql - 如何从 MS SQL 数据库(Microsoft SQL Server)中的其他 .sql 文件运行 .sql 文件?

java - 使用 JPA 查询可为空的 @OneToOne 关系

python - 将 Snowflake MD5 与 Python MD5 匹配