Heim >Datenbank >MySQL-Tutorial >Wie schließe ich NULL-Werte aus GROUP BY-Abfragen aus und behalte dabei alle Zeilen bei?
GROUP BY-Abfrage, die NULL-Werte ausschließt
Wenn Sie die GROUP BY-Funktion zum Aggregieren von Daten verwenden, kann es vorkommen, dass Sie ein Szenario ausschließen müssen NULL-Werte aus der Gruppierungsoperation. Dies tritt normalerweise auf, wenn Sie alle Zeilen mit NULL-Werten im angegebenen Feld beibehalten möchten.
Um dies zu erreichen, besteht ein Ansatz darin, NULL-Werte durch einen eindeutigen Bezeichner zu ersetzen. Dies kann mit der Funktion IFNULL() erfolgen:
SELECT `table1`.*, IFNULL(ancestor,UUID()) AS `unq_ancestor`, GROUP_CONCAT(id SEPARATOR ',') AS `children_ids` FROM `table1` WHERE (enabled = 1) GROUP BY unq_ancestor
In diesem Beispiel ersetzen wir NULL-Vorfahren durch einen eindeutigen UUID()-Wert. Dadurch wird sichergestellt, dass NULL-Vorfahren nicht gruppiert werden und die Abfrage alle Zeilen unabhängig von ihrem Vorfahrenfeldwert zurückgibt.
Das obige ist der detaillierte Inhalt vonWie schließe ich NULL-Werte aus GROUP BY-Abfragen aus und behalte dabei alle Zeilen bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!