Heim > Datenbank > MySQL-Tutorial > Wie kann ich SQL-Daten gruppieren, während NULL-Werte in der „GROUP BY'-Klausel verarbeitet werden?

Wie kann ich SQL-Daten gruppieren, während NULL-Werte in der „GROUP BY'-Klausel verarbeitet werden?

Barbara Streisand
Freigeben: 2025-01-04 02:26:40
Original
796 Leute haben es durchsucht

How Can I Group SQL Data While Handling NULL Values in the `GROUP BY` Clause?

Gruppieren von Daten mit NULL-Werten in SQL

Das Gruppieren von Daten mithilfe der GROUP BY-Funktion ist eine leistungsstarke Technik zum Zusammenfassen und Abrufen von Daten. Manchmal ist es jedoch wünschenswert, Daten zu gruppieren und dabei NULL-Werte zu ignorieren. Dies kann durch geschickte Manipulation der GROUP BY-Klausel erreicht werden.

In der angegebenen Abfrage wird GROUP BY verwendet, um Zeilen nach dem Vorfahrenfeld zu gruppieren. Wenn ancestor jedoch für mehrere Zeilen NULL ist, werden sie gruppiert, was dazu führt, dass nur eine Zeile zurückgegeben wird. Um dieses Problem zu lösen, können wir einen Trick mit der IFNULL-Funktion verwenden.

Wir können die Abfrage wie folgt ändern:

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

In dieser überarbeiteten Abfrage verwenden wir IFNULL, um ein eindeutiges Ergebnis zuzuweisen Bezeichner (UUID) auf NULL-Werte im Vorfahrenfeld. Dadurch wird eine eindeutige Spalte namens unq_ancestor erstellt, die dann zur Gruppierung verwendet wird. Dadurch werden alle Zeilen, einschließlich derjenigen mit NULL-Vorfahrenwerten, separat gruppiert, sodass Sie alle gewünschten Daten abrufen können.

Das obige ist der detaillierte Inhalt vonWie kann ich SQL-Daten gruppieren, während NULL-Werte in der „GROUP BY'-Klausel verarbeitet werden?. 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