Вопрос

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

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

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

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

Это было полезно?

Решение

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

Другие советы

Вы можете сделать это в 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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top