【问题标题】:Mysql do not select duplicated values, conditionalmysql不选择重复值,有条件
【发布时间】:2013-05-14 13:36:21
【问题描述】:

我正在寻找一种方法来运行一个简单的SELECT 语句。我有一个包含三列的表:IDTITLEACTIVE,其中ACTIVE 列代表boolean 值。

1. foo false
2. foo false
3. foo true
4. bar false
5. bar false
6. aaa false
7. ccc false
8. ccc true

我希望它返回以下内容:

4. bar false
5. aaa false

【问题讨论】:

  • 您需要在问题中添加更多详细信息。推动选择此结果的业务规则是什么?
  • 我假设第二个结果行应该是6. aaa false?
  • 任何答案有帮助吗?

标签: mysql select duplicates


【解决方案1】:

这将显示只有一个 ACTIVE 值的 TITLES(这就是您要查找的内容,对吗?),以及该 TITLE 的 MIN ID。

SELECT MIN(ID) ID, TITLE, ACTIVE

FROM   YOURTABLE

GROUP BY TITLE

HAVING MIN(ACTIVE) = MAX(ACTIVE)

【讨论】:

    【解决方案2】:

    如果我的理解正确,您正在检索那些只有 false 值的行,那么这应该对您有所帮助:

    SELECT * 
    FROM (
       SELECT  `ID` ,  `TITLE` ,  `ACTIVE` 
       FROM  `table_name` 
       GROUP BY  `TITLE`
    ) AS  `t` 
    WHERE t.`ACTIVE` = 0
    

    我还认为,对于布尔值,您需要有 01

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 2012-10-24
      • 2011-10-09
      相关资源
      最近更新 更多