GROUP_CONCAT

У MySQL для збереження списку значень у вигляді рядка, розділеного комами або іншими роздільниками, можна використовувати функцію GROUP_CONCAT. Ця функція об'єднує значення з декількох рядків у один рядок з вказаним роздільником.

Приклад використання GROUP_CONCAT

Синтаксис

GROUP_CONCAT([DISTINCT] expr [ORDER BY ...] [SEPARATOR str])
  • DISTINCT: Унікальні значення.

  • expr: Вираз для об'єднання.

  • ORDER BY: Сортування значень перед об'єднанням.

  • SEPARATOR str: Вказує роздільник. За замовчуванням використовується кома.

Приклад

Припустимо, у вас є таблиця employees з наступними даними:

idname

1

Alice

2

Bob

3

Carol

Ви хочете об'єднати імена всіх працівників у один рядок, розділений комами.

SELECT GROUP_CONCAT(name) AS employee_list FROM employees;

Результат:

employee_list

Alice,Bob,Carol

Використання іншого роздільника

Якщо ви хочете використовувати інший роздільник, наприклад, крапку з комою:

SELECT GROUP_CONCAT(name SEPARATOR '; ') AS employee_list FROM employees;

Результат:

employee_list

Alice; Bob; Carol

Використання з умовами та сортуванням

Ви можете додати умови та сортування до запиту:

SELECT GROUP_CONCAT(name ORDER BY name ASC SEPARATOR ', ') AS employee_list
FROM employees WHERE id < 3;

Результат:

employee_list

Alice, Bob

Виключення дублікатів за допомогою DISTINCT:

SELECT GROUP_CONCAT(DISTINCT name) AS names_list FROM employees;

Цей запит об'єднає всі унікальні значення стовпця name.

Висновок

Функція GROUP_CONCAT є потужним інструментом для об'єднання значень з кількох рядків у один рядок з вказаним роздільником. Це особливо корисно для створення списків значень у одному полі або для об'єднання даних з декількох рядків у зручному форматі.

Як зберегти результат запиту у змінну

Дивись тут

Last updated