MySQL - Select Concat uma linha inteira
-
06-07-2019 - |
Pergunta
Como posso selecionar e concat todos os campos em uma linha?
Eu quero fazer algo semelhante a isto:
SELECT concat(SELECT GROUP_CONCAT(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name')
as single FROM tbl_name
.. mas, obviamente, o acima não funciona. Alguma sugestão?
Solução
Você terá a construir a consulta de forma dinâmica, ou seja, listar todas as colunas em concat(...)
explicitamente. Você pode fazer isso no lado do cliente, executando duas consultas ou em um procedimento armazenado usando uma declaração preparada.
Outras dicas
Você pode fazê-lo em 3 etapas:
1- lista de campos Desenvolver
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 Copie o valor do campo field_list
3 Extrair dados:
SELECT CONCAT( "Paste value copied at previous step" )
FROM TABLE_NAME
Se você criar um procedimento armazenado, que você pode combinar os passos acima
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow