Функция CONCAT_WS

Функция CONCAT_WS предназначена для сложения строк при выборке из базы данных с использованием разделителя. Строками обычно выступают поля таблиц.

Синтаксис

SELECT CONCAT_WS(разделитель, поле1, поле2...) FROM имя_таблицы WHERE условие

Таблицы для примеров

таблица employees
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

Меняем таблицу для примеров

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