In MariaDB können wir den GROUP_CONCAT()
verwenden Funktion, um unsere Abfrageergebnisse als kommagetrennte Liste zurückzugeben. Damit meine ich, dass wir für eine bestimmte Spalte alle Zeilen in eine einzelne Zeile umwandeln können, die eine durch Kommas getrennte Liste der Werte enthält, aus denen diese Spalte bestand. Jede Zeile ist ein separates Element in der Liste.
Beispiel
Angenommen, wir führen die folgende Abfrage aus:
SELECT meal
FROM guest_meals;
Ergebnis:
+---------+| Mahlzeit |+---------+| Salat || Fisch || Burritos || Teigwaren || Salat || Salat |+---------+6 Zeilen im Satz (0,001 Sek.)
Diese Abfrage ergab sechs Zeilen.
Wir können diese Zeilen wie folgt in eine durch Kommas getrennte Zeile umwandeln:
SELECT GROUP_CONCAT(meal)
FROM guest_meals;
Ergebnis:
Ändern Sie das Trennzeichen
Wir können unser eigenes Trennzeichen angeben, indem wir es an die Funktion übergeben, wobei SEPARATOR
vorangestellt wird Stichwort:
SELECT GROUP_CONCAT(meal SEPARATOR ' + ')
FROM guest_meals;
Ergebnis:
Salat + Fisch + Burrito + Pasta + Salat + Salat
Ordnen der Ergebnisse
Wir können die Ergebnisse ordnen, indem wir einen ORDER BY
verwenden Klausel in der Funktion:
SELECT GROUP_CONCAT(meal ORDER BY meal ASC)
FROM guest_meals;
Ergebnis:
Burrito,Fisch,Pasta,Salat,Salat,Salat
Nur eindeutige Werte zurückgeben
Wir können einen DISTINCT
verwenden -Klausel, um nur eindeutige Werte zurückzugeben:
SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC)
FROM guest_meals;
Ergebnis:
Burrito, Fisch, Nudeln, Salat
Begrenzen Sie die Ergebnisse
Wir können ein LIMIT
verwenden -Klausel, um die Anzahl der Elemente in der Liste zu begrenzen:
SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC LIMIT 3)
FROM guest_meals;
Ergebnis:
Burrito,Fisch,Pasta
Gruppierte Abfragen
Die GROUP_CONCAT()
Funktion kann praktisch sein, wenn Sie gruppierte Abfragen ausführen. Siehe MariaDB GROUP_CONCAT()
für ein Beispiel.