MySQL: Функция CONCAT_WS

Одной из часто используемых функций в MySQL является оператор  CONCAT_WS() , который означает "Concatenate With Separator" (конкатенация с разделителем). Эта функция позволяет объединить несколько строк с указанным разделителем, что крайне удобно при формировании сложных выражений и динамически создаваемых строк.

Синтаксис функции CONCAT_WS():
CONCAT_WS(separator, str1, str2, ..., strN)

Параметр separator — это разделитель, который будет вставлен между строками. Остальные параметры — это сами строки, которые нужно соединить.

Пример 1: Соединение ФИО сотрудника
Пусть у нас есть таблица сотрудников с полями first_name, middle_name и last_name. Нам нужно получить полное имя сотрудника в формате "ФИО":
SELECT CONCAT_WS(' ', last_name, first_name, middle_name) AS full_name
FROM employees;

Результат:
| full_name           |
|---------------------|
| Иванов Иван Иванович |
| Петров Петр Петрович |

Пример 2: Формирование полного адреса
Имеется таблица с полями street, house_number, city, state, zip_code. Задача — сформировать единый адрес:
SELECT CONCAT_WS(', ', street, house_number, city, state, zip_code) AS address
FROM addresses;

Результат:
| address                     |
|-----------------------------|
| Ленина, 10, Москва, МО, 123456 |
| Мира, 5, Петербург, СПБ, 654321 |

Пример 3: Игнорирование NULL-значений
Функция CONCAT_WS() игнорирует значения NULL, что очень удобно при наличии неполных данных:
SELECT CONCAT_WS('-', 'Apple', NULL, 'Samsung', 'Xiaomi') AS brands;

Результат:
| brands            |
|-------------------|
| Apple-Samsung-Xiaomi |

Обратите внимание, что пустое значение (NULL) пропущено.

Функция CONCAT_WS() — мощный инструмент для работы с строками в MySQL. Она позволяет быстро и удобно соединять строки с нужным разделителем, упрощая формирование динамических выражений и сложных запросов.

Автор:  21 час назад