sql >> Databáze >  >> RDS >> MariaDB

Převeďte výsledky dotazu na seznam oddělený čárkami v MariaDB

V MariaDB můžeme použít GROUP_CONCAT() funkci vrátit výsledky dotazu jako seznam oddělený čárkami. Tím myslím, že pro daný sloupec můžeme převést všechny řádky do jednoho řádku, který obsahuje čárkami oddělený seznam hodnot, které daný sloupec tvoří. Každý řádek je samostatnou položkou v seznamu.

Příklad

Předpokládejme, že spustíme následující dotaz:

SELECT meal 
FROM guest_meals;

Výsledek:

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

Výsledkem tohoto dotazu bylo šest řádků.

Tyto řádky můžeme převést na jeden řádek oddělený čárkami takto:

SELECT GROUP_CONCAT(meal) 
FROM guest_meals;

Výsledek:

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

Změňte oddělovač

Můžeme určit svůj vlastní oddělovač tak, že jej předáme funkci s předponou SEPARATOR klíčové slovo:

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

Výsledek:

Salad + Fish + Burrito + Pasta + Salad + Salad

Pořadí výsledků

Výsledky můžeme seřadit pomocí ORDER BY klauzule ve funkci:

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

Výsledek:

Burrito,Fish,Pasta,Salad,Salad,Salad

Vracet pouze jedinečné hodnoty

Můžeme použít DISTINCT klauzule pro vrácení pouze jedinečných hodnot:

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

Výsledek:

Burrito,Fish,Pasta,Salad

Omezit výsledky

Můžeme použít LIMIT klauzule pro omezení počtu položek v seznamu:

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

Výsledek:

Burrito,Fish,Pasta

Skupinové dotazy

GROUP_CONCAT() funkce může být užitečná při spouštění seskupených dotazů. Viz MariaDB GROUP_CONCAT() pro příklad.


  1. Příkaz Oracle CREATE TABLE v PL/SQL s 10 příklady

  2. Jak minimalizovat RPO pro vaše databáze PostgreSQL pomocí Point in Time Recovery

  3. Tipy a triky pomocí protokolování auditu pro MariaDB

  4. Jak zobrazit čísla řádků v dotazu PostgreSQL?