Maison > base de données > tutoriel mysql > Comment concaténer toutes les colonnes dans MySQL : explorer des approches alternatives ?

Comment concaténer toutes les colonnes dans MySQL : explorer des approches alternatives ?

Barbara Streisand
Libérer: 2024-10-24 19:06:02
original
337 Les gens l'ont consulté

How to Concatenate All Columns in MySQL: Exploring Alternative Approaches?

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
Copier après la connexion

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
Copier après la connexion

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';
Copier après la connexion

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, '`'))
Copier après la connexion

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;
Copier après la connexion

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;
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal