Как объединить несколько столбцов как один и форматировать с помощью настраиваемых строк?

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,...