MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Konvertieren Sie Abfrageergebnisse in eine durch Kommas getrennte Liste in MariaDB

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:

+--------------------------------------+| GROUP_CONCAT(Mahlzeit) |+------------------------------------+| Salat,Fisch,Burrito,Nudeln,Salat,Salat |+------------------------------------- -+1 Zeile im Satz (0,003 Sek.)

Ä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.