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?

Foi útil?

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
scroll top