Maison > base de données > tutoriel mysql > le corps du texte

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

Mary-Kate Olsen
Libérer: 2024-10-24 17:29:02
original
923 Les gens l'ont consulté

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

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

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

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

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

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

Enfin, exécutez cette requête dynamique :

<code class="sql">PREPARE stmt FROM @sql;
EXECUTE stmt;</code>
Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!