MySQL - выберите Concat всю строку - PullRequest
2 голосов
/ 26 октября 2009

Как я могу выбрать и объединить каждое поле в строке?

Я хочу сделать что-то похожее на это:

SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name')
as single FROM tbl_name

.. но, очевидно, выше не работает. Есть предложения?

Ответы [ 2 ]

0 голосов
/ 26 октября 2009

Вы можете сделать это в 3 шага:

1- Построить список полей

SELECT group_concat( column_name ) as field_list
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'TABLE_NAME'
GROUP BY table_name
LIMIT 0 , 1

2- Скопировать значение поля field_list

3- Извлечь данные:

SELECT CONCAT( "Paste value copied at previous step" )
FROM TABLE_NAME

Если вы создаете хранимую процедуру, вы можете объединить вышеуказанные шаги

0 голосов
/ 26 октября 2009

Вы будете строить запрос динамически, то есть перечислять все столбцы в concat(...) явным образом. Вы можете сделать это на стороне клиента, выполнив два запроса или в хранимой процедуре, используя подготовленный оператор.

...