Maison > base de données > tutoriel mysql > Comment concaténer plusieurs lignes en une seule chaîne à l'aide de GROUP_CONCAT et CONCAT dans MySQL ?

Comment concaténer plusieurs lignes en une seule chaîne à l'aide de GROUP_CONCAT et CONCAT dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-13 01:00:10
original
462 Les gens l'ont consulté

How to Concatenate Multiple Rows into a Single String Using GROUP_CONCAT and CONCAT in MySQL?

Utilisation de GROUP_CONCAT dans CONCAT dans MySQL

Pour concaténer plusieurs lignes en une seule chaîne, tout en les regroupant par valeurs communes, vous pouvez utiliser le Fonction GROUP_CONCAT. Explorons son application avec un exemple pratique.

Question :

Étant donné une table nommée mytbl avec les données suivantes :

id Name Value
1 A 4
1 A 5
1 B 8
2 C 9

Comment peut-on nous transformons ces données en ce qui suit format :

id Column
1 A:4,5,B:8
2 C:9

Réponse :

Pour y parvenir, vous pouvez utiliser une combinaison de fonctions GROUP_CONCAT et CONCAT imbriquées :

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select id, 
  concat(`Name`, ':', group_concat(`Value` separator ',')) as Name
   from mytbl group by id, Name
) tbl
group by id;
Copier après la connexion

Explication :

  • La requête la plus interne regroupe les données par à la fois id et Name, puis concatène la colonne Value avec une virgule comme séparateur pour chaque groupe.
  • La requête externe regroupe les résultats par id et concatène les chaînes Name précédemment concaténées, qui contiennent désormais les valeurs de chaque Name. au sein de chaque identifiant.

Cette combinaison GROUP_CONCAT et CONCAT imbriquée vous permet de générer la sortie souhaitée, où chaque identifiant est associé à un chaîne de nom séparée par des virgules et leur valeur correspondante.

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.cn
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