MariaDB
 sql >> Database >  >> RDS >> MariaDB

Converti i risultati della query in un elenco separato da virgole in MariaDB

In MariaDB, possiamo usare il GROUP_CONCAT() funzione per restituire i risultati della query come un elenco separato da virgole. Con ciò intendo dire, per una determinata colonna, possiamo convertire tutte le righe in un'unica riga che contiene un elenco separato da virgole dei valori che compongono quella colonna. Ogni riga è un elemento separato nell'elenco.

Esempio

Supponiamo di eseguire la seguente query:

SELECT meal 
FROM guest_meals;

Risultato:

+---------+
| meal    |
+---------+
| Salad   |
| Fish    |
| Burrito |
| Pasta   |
| Salad   |
| Salad   |
+---------+
6 rows in set (0.001 sec)

Quella query ha prodotto sei righe.

Possiamo convertire quelle righe in una riga separata da virgole in questo modo:

SELECT GROUP_CONCAT(meal) 
FROM guest_meals;

Risultato:

+--------------------------------------+
| GROUP_CONCAT(meal)                   |
+--------------------------------------+
| Salad,Fish,Burrito,Pasta,Salad,Salad |
+--------------------------------------+
1 row in set (0.003 sec)

Cambia il delimitatore

Possiamo specificare il nostro separatore passandolo alla funzione, preceduta da SEPARATOR parola chiave:

SELECT GROUP_CONCAT(meal SEPARATOR ' + ') 
FROM guest_meals;

Risultato:

Salad + Fish + Burrito + Pasta + Salad + Salad

Ordinare i risultati

Possiamo ordinare i risultati utilizzando un ORDER BY clausola nella funzione:

SELECT GROUP_CONCAT(meal ORDER BY meal ASC) 
FROM guest_meals;

Risultato:

Burrito,Fish,Pasta,Salad,Salad,Salad

Restituisci solo valori univoci

Possiamo usare un DISTINCT clausola per restituire solo valori univoci:

SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC) 
FROM guest_meals;

Risultato:

Burrito,Fish,Pasta,Salad

Limita i risultati

Possiamo usare un LIMIT clausola per limitare il numero di elementi nell'elenco:

SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC LIMIT 3) 
FROM guest_meals;

Risultato:

Burrito,Fish,Pasta

Query raggruppate

Il GROUP_CONCAT() La funzione può essere utile quando si eseguono query raggruppate. Vedi MariaDB GROUP_CONCAT() per un esempio.