MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Преобразувайте резултатите от заявката в списък, разделен със запетая, в MariaDB

В MariaDB можем да използваме GROUP_CONCAT() функция, за да върне резултатите от нашата заявка като списък, разделен със запетая. Под това имам предвид, че за дадена колона можем да преобразуваме всички редове в един ред, който съдържа разделен със запетая списък със стойностите, съставляващи тази колона. Всеки ред е отделен елемент в списъка.

Пример

Да предположим, че изпълняваме следната заявка:

SELECT meal 
FROM guest_meals;

Резултат:

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

Тази заявка доведе до шест реда.

Можем да преобразуваме тези редове в един ред, разделен със запетая, както следва:

SELECT GROUP_CONCAT(meal) 
FROM guest_meals;

Резултат:

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

Променете разделителя

Можем да посочим собствен разделител, като го предадем на функцията с префикс SEPARATOR ключова дума:

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

Резултат:

Salad + Fish + Burrito + Pasta + Salad + Salad

Поръчване на резултатите

Можем да поръчаме резултатите, като използваме ORDER BY клауза във функцията:

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

Резултат:

Burrito,Fish,Pasta,Salad,Salad,Salad

Връщане само на уникални стойности

Можем да използваме DISTINCT клауза за връщане само на уникални стойности:

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

Резултат:

Burrito,Fish,Pasta,Salad

Ограничете резултатите

Можем да използваме LIMIT клауза за ограничаване на броя на елементите в списъка:

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

Резултат:

Burrito,Fish,Pasta

Групирани заявки

GROUP_CONCAT() функцията може да бъде удобна при изпълнение на групирани заявки. Вижте MariaDB GROUP_CONCAT() за пример.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съвети за мигриране от MySQL репликация към MySQL Galera Cluster 4.0

  2. Първи стъпки с ProxySQL - Урок за балансиране на натоварването на MySQL и MariaDB

  3. Автоматизация на базата данни зад новата електронна самоличност на Швеция Freja eID

  4. Основно управление на MaxScale с помощта на MaxCtrl за MariaDB клъстер - част втора

  5. Архивно шифроване на база данни – най-добри практики