Concaténation de toutes les colonnes dans MySQL : approches alternatives
Dans MySQL, la concaténation de toutes les colonnes à l'aide du mot-clé * n'est pas réalisable. Pour récupérer une chaîne de valeurs concaténées dans toutes les colonnes, une liste explicite de noms de colonnes est requise.
Liste explicite des colonnes :
L'approche la plus simple consiste à concaténer manuellement des valeurs individuelles. colonnes :
SELECT CONCAT(col1, col2, col3, ....) FROM yourtable
Fonction CONCAT_WS :
La fonction CONCAT_WS peut être utilisée pour concaténer des colonnes tout en ignorant les valeurs nulles :
SELECT CONCAT_WS(',', col1, col2, col3, ....) FROM yourtable
Génération de requêtes dynamiques :
Pour éviter de spécifier manuellement les noms de colonnes, une requête dynamique peut être créée :
SELECT `column_name` FROM `information_schema`.`columns` WHERE `table_schema`=DATABASE() AND `table_name`='yourtable';
Cette requête récupère tous les noms de colonnes de la table. Grâce à GROUP_CONCAT, ces noms peuvent être transformés en une chaîne séparée par des virgules :
GROUP_CONCAT(CONCAT('`', column_name, '`'))
Enfin, ces éléments peuvent être combinés pour créer une requête dynamique :
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;
Cette requête définit le Chaîne @sql aux noms de colonnes concaténés. Le code suivant exécute cette requête :
PREPARE stmt FROM @sql; EXECUTE stmt;
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!