Maison > base de données > tutoriel mysql > Comment les fonctions GROUP_CONCAT et CONCAT de MySQL peuvent-elles transformer plusieurs lignes en une seule chaîne séparée par des virgules ?

Comment les fonctions GROUP_CONCAT et CONCAT de MySQL peuvent-elles transformer plusieurs lignes en une seule chaîne séparée par des virgules ?

Patricia Arquette
Libérer: 2024-12-15 08:36:16
original
413 Les gens l'ont consulté

How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?

Utilisation de GROUP_CONCAT et CONCAT pour la transformation des données dans MySQL

Dans MySQL, la combinaison des données de plusieurs lignes en une seule chaîne peut être obtenue grâce au utilisation de la fonction GROUP_CONCAT. Considérons un tableau contenant les informations suivantes :

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

Un objectif pourrait être de transformer ces données au format suivant :

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

Pour y parvenir, une approche combinée de GROUP_CONCAT et CONCAT peuvent être employés. Voici la requête :

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

Cette requête fonctionne en deux étapes :

  1. Elle regroupe d'abord par les colonnes id et Name, en concaténant les valeurs au sein de chaque groupe à l'aide de la fonction GROUP_CONCAT. Cela produit un ensemble de résultats avec des paires uniques d'identifiant et de nom où la valeur est fournie dans un format séparé par des virgules.
  2. L'opération de groupe externe par identifiant combine en outre les résultats de la requête interne, ce qui donne une seule ligne pour chaque identifiant unique avec une liste de paires Nom:Valeur séparées par des virgules.

En exécutant cette requête, vous obtiendrez la transformation de données souhaitée, avec des lignes au format suivant :

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

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