Maison  >  Article  >  base de données  >  Comment concaténer toutes les colonnes d’une table MySQL ?

Comment concaténer toutes les colonnes d’une table MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-24 17:29:02924parcourir

How to Concatenate All Columns in a MySQL Table?

Concaténation de toutes les colonnes dans MySQL

Dans MySQL, le mot-clé * générique ne peut pas être utilisé dans la fonction CONCAT() pour concaténer toutes les colonnes dans un tableau. Au lieu de cela, vous devez explicitement répertorier chaque nom de colonne :

<code class="sql">SELECT CONCAT(col1, col2, col3, ...)
FROM yourtable;</code>

Vous pouvez également utiliser la fonction CONCAT_WS() pour ignorer les valeurs nulles :

<code class="sql">SELECT CONCAT_WS(',', col1, col2, col3, ...)
FROM yourtable;</code>

Si vous préférez, vous pouvez éviter en spécifiant manuellement les noms de colonnes à l'aide d'une requête dynamique. Récupérez les noms de colonnes de votre table :

<code class="sql">SELECT `column_name`
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE()
AND `table_name` = 'yourtable';</code>

Utilisez GROUP_CONCAT pour obtenir une liste de noms de colonnes séparés par des virgules :

<code class="sql">GROUP_CONCAT(CONCAT('`', column_name, '`'))</code>

Maintenant, construisez votre requête dynamique en concaténant des éléments :

<code class="sql">SELECT
CONCAT(
'SELECT CONCAT_WS(\'\',',
GROUP_CONCAT(CONCAT('`', column_name, '`') ORDER BY column_name),
') AS all_columns FROM yourtable;')
FROM `information_schema`.`columns`
WHERE `table_schema` = DATABASE()
AND `table_name` = 'yourtable'
INTO @sql;</code>

Cette requête définira la variable @sql sur une chaîne similaire à :

<code class="sql">SELECT CONCAT_WS('', col1, col2, col3, ...) AS all_columns FROM yourtable;</code>

Enfin, exécutez cette requête dynamique :

<code class="sql">PREPARE stmt FROM @sql;
EXECUTE stmt;</code>

Pour un exemple avec un SQLfiddle, consultez la source HTML fournie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn