Функция CONCAT_WS
Функция CONCAT_WS предназначена для
сложения строк при выборке из базы данных
с использованием разделителя. Строками обычно
выступают поля таблиц.
Синтаксис
SELECT CONCAT_WS(разделитель, поле1, поле2...) FROM имя_таблицы WHERE условие
Таблицы для примеров
| id айди |
name имя |
age возраст |
salary зарплата |
|---|---|---|---|
| 1 | user1 | 23 | 300 |
| 2 | user2 | 24 | 400 |
| 3 | user3 | 25 | 500 |
Пример
В данном примере при выборке из базы создается
новое поле concat_ws, в котором одновременно
сольются через дефис 3 поля - age,
name и salary:
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,
которая складывает содержимое одного поля из разных строк