我正在尝试找出一种使用 group by 函数返回结果的方法。
GROUP BY 按预期工作,但我的问题是:是否可以通过忽略 NULL 字段来进行分组。这样它就不会将 NULL 分组在一起,因为我仍然需要指定字段为 NULL 的所有行。
SELECT `table1`.*,
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY `ancestor`
现在假设我有 5 行,并且祖先字段为 NULL,它返回我 1 行......但我想要全部 5 行。
也许您应该向空列添加一些内容以使它们唯一并对其进行分组?我正在寻找某种序列来代替 UUID(),但这可能也同样有效。
SELECT `table1`.*,
IFNULL(ancestor,UUID()) as unq_ancestor
GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY unq_ancestor
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)