"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como concatenar dinamicamente todas as colunas do MySQL?

Como concatenar dinamicamente todas as colunas do MySQL?

Publicado em 2024-11-08
Navegar:231

How to Dynamically Concatenate All MySQL Columns?

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;
Declaração de lançamento Este artigo foi reimpresso em: 1729757658 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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