【问题标题】:mysql group by ignore nullmysql group by 忽略 null
【发布时间】:2014-03-07 13:08:30
【问题描述】:

下面有一张表格

id 专辑_id 专辑名称 ---- --------- ----------- 1 5 测试1 2 5 测试1 3 6 测试3 4 6 测试3 5 空测试4 6 空测试4

我想使用 group by album_id 编写查询,它会给出以下结果

id 专辑_id 专辑名称 ---- --------- ----------- 1 5 测试1 3 6 测试3 5 空测试4 6 空测试4

我已经尝试过,但它的分组 NULL 列也是,我想要所有为 NULL 的行并按专辑 ID 分组,但不为空。

我关注了这个link - 但不要为我工作

谢谢

【问题讨论】:

    标签: mysql group-by


    【解决方案1】:

    你可以用这个:

    SELECT MIN(id) AS id,
           album_id,
           album_name
    FROM T
    GROUP BY COALESCE(album_id, id), album_name
    ORDER BY album_name;
    

    Example on SQL Fiddle

    因此,当 album_id 为 NULL 时,您还可以按 id 分组,以确保返回 album_id 为空的所有行。

    【讨论】:

      【解决方案2】:

      试试这个

       SELECT * FROM <tablename>
       GROUP BY album_id,id;
      

      【讨论】:

        【解决方案3】:
        select * from YourTableName
        group by album_id asc
        

        试试这个..

        【讨论】:

        • 首先,OP 的查询是什么并不明显。其次,null 不是字符串值。这是 DBMS 中的一个特殊值。而like 也不是很好的处理方式
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多