Maison > base de données > tutoriel mysql > Comment puis-je utiliser GROUP_CONCAT pour concaténer des données dans un ordre spécifique ?

Comment puis-je utiliser GROUP_CONCAT pour concaténer des données dans un ordre spécifique ?

Mary-Kate Olsen
Libérer: 2024-11-29 01:29:15
original
707 Les gens l'ont consulté

How Can I Use GROUP_CONCAT to Concatenate Data in a Specific Order?

Fonctions GROUP_CONCAT avec ordre personnalisé

Pour récupérer les données de plusieurs lignes et les fusionner en une seule chaîne concaténée avec un ordre spécifié, le GROUP_CONCAT fonction peut être utilisée. Considérez le tableau suivant :

+-----------+-------+------------+
| client_id | views | percentage |
+-----------+-------+------------+
|         1 |     6 |         20 |
|         1 |     4 |         55 |
|         1 |     9 |         56 |
|         1 |     2 |         67 |
|         1 |     7 |         80 |
|         1 |     5 |         66 |
|         1 |     3 |         33 |
|         1 |     8 |         34 |
|         1 |     1 |         52 |
Copier après la connexion

Utilisation de la fonction GROUP_CONCAT :

SELECT li.client_id, group_concat(li.views) AS views,  
group_concat(li.percentage) FROM li GROUP BY client_id;
Copier après la connexion

Renverra le résultat suivant :

+-----------+-------------------+-----------------------------+
| client_id | views             | group_concat(li.percentage) |
+-----------+-------------------+-----------------------------+
|         1 | 6,4,9,2,7,5,3,8,1 | 20,55,56,67,80,66,33,34,52  |
+-----------+-------------------+-----------------------------+
Copier après la connexion

Pour classer les vues concaténées par ordre croissant ordre, on peut modifier la requête comme suit :

SELECT li.client_id,
  group_concat(li.views ORDER BY li.views ASC) AS views,
  group_concat(li.percentage ORDER BY li.views ASC) AS percentage
FROM li GROUP BY client_id
Copier après la connexion

Cela renverra le résultat :

+-----------+-------------------+----------------------------+
| client_id | views             | percentage                 |
+-----------+-------------------+----------------------------+
|         1 | 1,2,3,4,5,6,7,8,9 | 52,67,33,55,66,20,80,34,56 |
+-----------+-------------------+----------------------------+
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!

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