sql >> Database >  >> RDS >> MariaDB

Converteer queryresultaten naar een door komma's gescheiden lijst in MariaDB

In MariaDB kunnen we de GROUP_CONCAT() . gebruiken functie om onze queryresultaten te retourneren als een door komma's gescheiden lijst. Daarmee bedoel ik dat we voor een bepaalde kolom alle rijen kunnen converteren naar een enkele rij die een door komma's gescheiden lijst bevat van de waarden waaruit die kolom bestaat. Elke rij is een apart item in de lijst.

Voorbeeld

Stel dat we de volgende query uitvoeren:

SELECT meal 
FROM guest_meals;

Resultaat:

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

Die zoekopdracht resulteerde in zes rijen.

We kunnen die rijen als volgt omzetten in één door komma's gescheiden rij:

SELECT GROUP_CONCAT(meal) 
FROM guest_meals;

Resultaat:

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

Wijzig het scheidingsteken

We kunnen ons eigen scheidingsteken specificeren door het door te geven aan de functie, voorafgegaan door de SEPARATOR trefwoord:

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

Resultaat:

Salad + Fish + Burrito + Pasta + Salad + Salad

De resultaten bestellen

We kunnen de resultaten bestellen met behulp van een ORDER BY clausule in de functie:

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

Resultaat:

Burrito,Fish,Pasta,Salad,Salad,Salad

Alleen unieke waarden retourneren

We kunnen een DISTINCT . gebruiken clausule om alleen unieke waarden te retourneren:

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

Resultaat:

Burrito,Fish,Pasta,Salad

Beperk de resultaten

We kunnen een LIMIT . gebruiken clausule om het aantal items in de lijst te beperken:

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

Resultaat:

Burrito,Fish,Pasta

Gegroepeerde zoekopdrachten

De GROUP_CONCAT() functie kan handig zijn bij het uitvoeren van gegroepeerde query's. Zie MariaDB GROUP_CONCAT() voor een voorbeeld.


  1. Meerdere geparametriseerde variabelen toevoegen aan een database in c#

  2. Fix "Kan niet installeren in Homebrew op ARM-processor in Intel standaard prefix (/usr/local)!"

  3. Probleem bij het bouwen van cx_Oracle - libclntsh.so.11.1 => niet gevonden

  4. Hoe een substring selecteren in Oracle SQL tot een specifiek teken?