Die Anforderung, Ergebnisse aus einer SQL-Abfrage nicht nur aufzulisten, allerdings in einem kompakten Format auszugeben, erfreut sich großer Beliebtheit. In vielen Fällen ´ beispielsweise bei Berichten oder Datenanalysen ` ist eine solche Ausgabe wünschenswert. Dies gilt insbesondere, wenn man ansehnliche Fließe generieren möchte und nicht mit langen, unübersichtlichen Listen hantieren möchte – ebenfalls in Bezug auf die Lesbarkeit.
Hier ist die Lösung für MySQL – also einem weit verbreiteten relationalen Datenbankmanagementsystem. In MySQL verwendet man den Befehl `GROUP_CONCAT`. Der Befehl formatiert das Ergebnis in einer einzigen Zeile und trennt die einzelnen Werte durch ein gewähltes Trennzeichen. Dies könnte in Ihrem Fall das Komma sein. Ein einfaches Beispiel könnte folgendermaßen aussehen:
SELECT GROUP_CONCAT(spaltenname SEPARATOR ', ') FROM tabelle;
Dieser Befehl liefert Ihnen eine kommagetrennte Liste der Werte aus der angegebenen Spalte. Die Werte erscheinen dann, ebenso wie gewünscht, in der Form "hallo, keks, test". Allerdings ist es wichtig – hierbei eine gewisse Exaktheit zu beachten. Der `SEPARATOR`-Parameter kann auch angepasst werden um unterschiedliche Trennzeichen zu verwenden.
Sogar eine erweiterte Nutzung ist möglich. Man kann verschiedene Kombinationen mit `DISTINCT` und `ORDER BY` nutzen. Der Befehl kann zudem gewisse Duplikate eliminieren und die sortierte Ausgabe genießen was für manchen Nutzer von Vorteil sein kann. Ein Beispiel wäre:
SELECT GROUP_CONCAT(DISTINCT spaltenname ORDER BY spaltenname DESC SEPARATOR ', ') FROM tabelle;
Nun ist auch ein zusätzlicher Nutzen vorhanden: die sortierte Ausgabe. Der `ORDER BY`-Teil im SQL-Befehl sorts die Werte vor der Konkatenerstellung. Das gibt dem Nutzer die Möglichkeit die angezeigten Inhalte nach seinen Präferenzen zu ordnen – etwa alphabetisch absteigend. Ein weiteres Beispiel könnte also sein um eine klare und strukturierte Übersicht zu bewahren:
Angenommen, Sie haben die Daten "Zebra", "Apfel" und "Orange". Der Befehl wird sie so ausgeben: "Zebra, Orange, Apfel".
Eine gründliche Befassung mit diesen SQL-Befehlen führt zu effizienteren Datenabfragen. Ob Sie nun ein einfaches Resultat oder eine detaillierte Übersicht wünschen, bei MySQL ist eine ansprechende und clevere Gestaltung der Daten Ausgabe auf Anfrage möglich.
Zusammengefasst lässt sich sagen, dass Sie mit dem `GROUP_CONCAT`-Befehl in MySQL Ergebnisse als kommagetrennte Werte zurückgeben können. Über die Optionen wie `DISTINCT` und `ORDER BY` erweitern Sie Ihre Möglichkeiten und gestalten Ihre Abfragen noch benutzerfreundlicher und effizienter - das ist der aktuelle Stand der Technik im SQL.
