Как объединить несколько столбцов как один и форматировать с помощью настраиваемых строк?
SELECT id, <X> AS name FROM `table`
В принципе <X>
представляет собой комбинацию
lastname + ',' + firstname
Пример:
id | name |
2 | Smith, Bob |
3 | Jones, Susy |
Это просто пример, я просто не хочу сочетать имена так просто.
Ответы
Ответ 1
Как насчет функции CONCAT()
?
SELECT id, CONCAT(lastname, ', ', firstname) AS name FROM `table`;
Если вы собираетесь объединить многие поля, вы также можете рассмотреть функцию CONCAT_WS()
, где первым аргументом является разделитель для остальная часть аргументов, которая добавляется между строками, которые будут конкатенированы:
SELECT id,
CONCAT_WS(',', field_1, field_2, field_3, field_4) list
FROM `table`;
Ответ 2
используйте concat, например:
SELECT id, CONCAT(lastname, ' , ', firstname) AS name FROM `table`;
Ответ 3
Вы можете использовать GROUP_CONCAT():
Пример получения всех имен столбцов таблицы, разделенных запятой:
SELECT GROUP_CONCAT(c.`COLUMN_NAME`) FROM information_schema.`COLUMNS` c
WHERE c.`TABLE_SCHEMA` = "DB_NAME" AND c.`TABLE_NAME`="TABLE_NAME"
Вывод:
column_name_1,column_name_2,column_name_3,column_name_4,...