Maison >base de données >tutoriel mysql >Comment concaténer toutes les colonnes d'une table MySQL ?
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!