【问题标题】:MYSQL: Obtaining distinct values in column A having all same value in column BMYSQL:获取A列中的不同值在B列中具有相同的值
【发布时间】:2021-01-25 11:41:00
【问题描述】:

我有下表,有两列:

ID VALUE
1  false
1  true
2  false
2  true
2  false
3  false
3  false
4  false
4  false
5  true
5  false

我需要在 VALUE 列中选择所有只有 false 值的 ID。 例如,ID 1 同时具有 false 和 true 值。我的结果中不需要这一行。 在上面的示例中,我只需要选择 ID:3 和 4。它们是唯一在 VALUE 列中只有 false 值的 ID。

谢谢

【问题讨论】:

    标签: mysql sql select group-by having-clause


    【解决方案1】:

    你可以使用group byhaving

    select id
    from mytable
    group by id
    having max(value) = 'false'
    

    理由:'true' 大于'false',因此max(value) = 'false' 确保组中没有'true' 值。

    【讨论】:

    • 完美运行。这正是我需要的。非常感谢!
    • 欢迎@MarianD。如果我的回答正确地回答了您的问题,请点击复选标志accept it...谢谢。
    【解决方案2】:

    有多种方法可以解决这个问题,我是用最简单的一种,以后你可以尝试更多。

    我只是过滤掉带有true的ID,然后根据ID分组

    SELECT 
      t.ID 
    FROM
      twocol t 
    WHERE t.ID NOT IN 
      (SELECT 
        ID 
      FROM
        twocol 
      WHERE VALUE = 'true') 
    GROUP BY t.`ID` ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多