Concatenando dinamicamente todas as colunas do MySQL
No MySQL, concatenar todas as colunas usando o curinga * não é suportado. Em vez disso, você precisa especificar explicitamente cada nome de coluna nas funções CONCAT() ou GROUP_CONCAT().
Concatenação explícita de coluna:
Você pode usar o método CONCAT() função para concatenar colunas específicas:
SELECT CONCAT(col1, col2, col3, ...)
FROM yourtable;
Ou use CONCAT_WS() para concatenar colunas com um separador especificado, ignorando valores nulos:
SELECT CONCAT_WS(',', col1, col2, col3, ...)
FROM yourtable;
Concatenação dinâmica de colunas:
Para evitar a especificação manual de nomes de colunas, você pode usar uma consulta dinâmica para recuperar todos os nomes de colunas da tabela information_schema.columns:
SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE()
AND `table_name` = 'yourtable';
Em seguida, use GROUP_CONCAT() para combinar estes nomes de colunas:
GROUP_CONCAT(CONCAT('`', column_name, '`'))
Isso resultará em uma lista separada por vírgulas de nomes de colunas entre aspas, como:
`col1`,`col2`,`col3`,`col4`,...
Com isso, você pode criar uma consulta dinâmica para concatenar todas as colunas:
SET @sql = CONCAT(
'SELECT CONCAT_WS(\'\',',
GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
') AS all_columns FROM yourtable;'
);
Finalmente, execute a consulta dinâmica:
PREPARE stmt FROM @sql;
EXECUTE stmt;
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3