Функция 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
,
которая складывает содержимое одного поля из разных строк