Функция CONCAT_WS
Функция CONCAT_WS предназначена для
сложения строк при выборке из базы данных
с использованием разделителя. Строками обычно
выступают поля таблиц.
Синтаксис
SELECT CONCAT_WS(separator, field1, field2...) FROM table_name WHERE condition
Таблицы для примеров
| id | name | age | salary |
|---|---|---|---|
| 1 | user1 | 23 | 300 |
| 2 | user2 | 24 | 400 |
| 3 | user3 | 25 | 500 |
Пример
Давайте при выборке из базы создадим
новое поле concat_ws, в котором
поля age, name и salary будут объединены
через дефис 3:
SELECT *, CONCAT_WS('-', age, name, salary) AS concat_ws FROM employees
Результат выполнения кода:
| id | name | age | salary | concat_ws |
|---|---|---|---|---|
| 1 | user1 | 23 | 300 | 23-user1-300 |
| 2 | user2 | 24 | 400 | 24-user2-400 |
| 3 | user3 | 25 | 500 | 25-user3-500 |
Пример
Давайте при формировании нового поля
добавим помимо значений из базы также
строку '!!!':
SELECT *, CONCAT_WS('-', age, '!!!', salary) AS concat_ws FROM employees
Результат выполнения кода:
| id | name | age | salary | concat_ws |
|---|---|---|---|---|
| 1 | user1 | 23 | 300 | 23-!!!-300 |
| 2 | user2 | 24 | 400 | 24-!!!-400 |
| 3 | user3 | 25 | 500 | 25-!!!-500 |
Меняем таблицу для примеров
| id | name | age | salary | separator |
|---|---|---|---|---|
| 1 | user1 | 23 | 300 | - |
| 2 | user2 | 24 | 400 | @ |
| 3 | user3 | 25 | 500 | ! |
Пример
Давайте используем содержимое поля separator в качестве разделителя между age, name и salary:
SELECT *, CONCAT_WS(separator, age, name, salary) AS concat_ws FROM employees
Результат выполнения кода:
| id | name | age | salary | separator | concat_ws |
|---|---|---|---|---|---|
| 1 | user1 | 23 | 300 | - | 23-user1-300 |
| 2 | user2 | 24 | 400 | @ | 24@user2@400 |
| 3 | user3 | 25 | 500 | ! | 25!user3!500 |
Смотрите также
-
функцию
CONCAT,
которая складывает строки без использования разделителя -
функцию
GROUP_CONCAT,
которая складывает содержимое одного поля из разных строк