Heim > Datenbank > MySQL-Tutorial > Wie gehe ich mit NULL-Werten in GROUP BY-Klauseln um, um alle Zeilen einzuschließen?

Wie gehe ich mit NULL-Werten in GROUP BY-Klauseln um, um alle Zeilen einzuschließen?

Mary-Kate Olsen
Freigeben: 2024-12-15 13:12:17
Original
552 Leute haben es durchsucht

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

GROUP BY Null-Behandlung

Bei der Verwendung von GROUP BY zum Aggregieren von Daten ist es wichtig zu berücksichtigen, wie mit NULL-Werten umgegangen wird. Standardmäßig werden NULL-Werte gruppiert und möglicherweise Zeilen mit fehlenden Werten ausgeschlossen.

In diesem Szenario gruppieren Sie Zeilen nach dem Vorfahrenfeld und möchten Zeilen einschließen, in denen Vorfahr NULL ist. Um dies zu erreichen, können Sie eine Problemumgehung nutzen:

SELECT `table1`.*,
    IFNULL(ancestor, UUID()) AS `unq_ancestor`,
    GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY `unq_ancestor`;
Nach dem Login kopieren

Die UUID()-Funktion generiert eine eindeutige Kennung für jede Zeile mit einem NULL-Vorfahrenwert. Dadurch wird sichergestellt, dass Zeilen mit NULL ancestor eine eindeutige Kennung zugewiesen wird, wodurch verhindert wird, dass sie gruppiert werden.

Durch Ersetzen des Ancestor-Felds durch unq_ancestor in der GROUP BY-Klausel gruppiert die Abfrage nun Zeilen basierend auf der eindeutigen Kennung für NULL-Werte und alle Zeilen werden in die Ergebnismenge aufgenommen.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit NULL-Werten in GROUP BY-Klauseln um, um alle Zeilen einzuschließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage