MySQL - выберите Concat всю строку
-
06-07-2019 - |
Вопрос
Как я могу выбрать и объединить каждое поле подряд?
Я хочу сделать что-то похожее на это:
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
Если вы создаете хранимую процедуру, вы можете объединить вышеуказанные шаги
Не связан с StackOverflow