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中文网其他相关文章!