У MySQL для збереження списку значень у вигляді рядка, розділеного комами або іншими роздільниками, можна використовувати функцію GROUP_CONCAT. Ця функція об'єднує значення з декількох рядків у один рядок з вказаним роздільником.
Приклад використання GROUP_CONCAT
Синтаксис
GROUP_CONCAT([DISTINCT] expr [ORDER BY ...] [SEPARATOR str])
DISTINCT: Унікальні значення.
expr: Вираз для об'єднання.
ORDER BY: Сортування значень перед об'єднанням.
SEPARATOR str: Вказує роздільник. За замовчуванням використовується кома.
Приклад
Припустимо, у вас є таблиця employees з наступними даними:
id
name
1
Alice
2
Bob
3
Carol
Ви хочете об'єднати імена всіх працівників у один рядок, розділений комами.
SELECT GROUP_CONCAT(name) AS employee_list FROM employees;
Результат:
employee_list
Alice,Bob,Carol
Використання іншого роздільника
Якщо ви хочете використовувати інший роздільник, наприклад, крапку з комою:
Результат:
employee_list
Alice; Bob; Carol
Використання з умовами та сортуванням
Ви можете додати умови та сортування до запиту:
Результат:
employee_list
Alice, Bob
Виключення дублікатів за допомогою DISTINCT:
Цей запит об'єднає всі унікальні значення стовпця name.
Висновок
Функція GROUP_CONCAT є потужним інструментом для об'єднання значень з кількох рядків у один рядок з вказаним роздільником. Це особливо корисно для створення списків значень у одному полі або для об'єднання даних з декількох рядків у зручному форматі.