MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Konwertuj wyniki zapytania na listę rozdzielaną przecinkami w MariaDB

W MariaDB możemy użyć GROUP_CONCAT() funkcja zwracająca wyniki zapytania w postaci listy oddzielonej przecinkami. Mam na myśli to, że dla danej kolumny możemy skonwertować wszystkie wiersze do jednego wiersza, który zawiera oddzieloną przecinkami listę wartości składających się na tę kolumnę. Każdy wiersz jest osobną pozycją na liście.

Przykład

Załóżmy, że uruchamiamy następujące zapytanie:

SELECT meal 
FROM guest_meals;

Wynik:

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

To zapytanie dało sześć wierszy.

Możemy przekształcić te wiersze w jeden wiersz oddzielony przecinkami w ten sposób:

SELECT GROUP_CONCAT(meal) 
FROM guest_meals;

Wynik:

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

Zmień ogranicznik

Możemy określić własny separator, przekazując go do funkcji poprzedzonej przedrostkiem SEPARATOR słowo kluczowe:

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

Wynik:

Salad + Fish + Burrito + Pasta + Salad + Salad

Porządkowanie wyników

Wyniki możemy uporządkować za pomocą ORDER BY klauzula w funkcji:

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

Wynik:

Burrito,Fish,Pasta,Salad,Salad,Salad

Zwróć tylko unikalne wartości

Możemy użyć DISTINCT klauzula zwracająca tylko unikalne wartości:

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

Wynik:

Burrito,Fish,Pasta,Salad

Ogranicz wyniki

Możemy użyć LIMIT klauzula ograniczająca liczbę pozycji na liście:

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

Wynik:

Burrito,Fish,Pasta

Zgrupowane zapytania

GROUP_CONCAT() funkcja może być przydatna podczas uruchamiania zgrupowanych zapytań. Zobacz MariaDB GROUP_CONCAT() na przykład.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. W bazie danych MySQL brakuje miejsca na dysku

  2. Wprowadzenie do wyszukiwania pełnotekstowego w MariaDB

  3. Migracja bazy danych Azure dla MySQL/MariaDB na serwer lokalny

  4. Jak SIN() działa w MariaDB

  5. Wdrożenie w wielu chmurach do replikacji MariaDB przy użyciu WireGuard