首页 > 数据库 > mysql教程 > 如何处理 GROUP BY 子句中的 NULL 值以包含所有行?

如何处理 GROUP BY 子句中的 NULL 值以包含所有行?

Mary-Kate Olsen
发布: 2024-12-15 13:12:17
原创
552 人浏览过

How to Handle NULL Values in GROUP BY Clauses to Include All Rows?

GROUP BY Null 处理

使用 GROUP BY 聚合数据时,考虑如何处理 NULL 值至关重要。默认情况下,NULL 值会分组在一起,可能会排除具有缺失值的行。

在这种情况下,您将按祖先字段对行进行分组,并希望包括祖先为 NULL 的行。为了实现这一点,您可以利用一种解决方法:

SELECT `table1`.*,
    IFNULL(ancestor, UUID()) AS `unq_ancestor`,
    GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY `unq_ancestor`;
登录后复制

UUID() 函数为具有 NULL 祖先值的每一行生成唯一标识符。这可确保为具有 NULL 祖先的行分配唯一标识符,从而防止它们被分组在一起。

通过在 GROUP BY 子句中用 unq_ancestor 替换祖先字段,查询现在将根据唯一标识符对行进行分组对于 NULL 值,所有行都将包含在结果集中。

以上是如何处理 GROUP BY 子句中的 NULL 值以包含所有行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板