Maison >base de données >tutoriel mysql >Comment puis-je trier les résultats dans GROUP_CONCAT à l'aide de ORDER BY ?

Comment puis-je trier les résultats dans GROUP_CONCAT à l'aide de ORDER BY ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 11:50:14534parcourir

How Can I Order Results Within GROUP_CONCAT Using ORDER BY?

Résultats de commande dans GROUP_CONCAT avec ORDER BY

Dans une situation où vous avez une table avec plusieurs lignes par client et que vous souhaitez regrouper et concaténer les données dans un ordre spécifique, GROUP_CONCAT peut être utilisé avec la clause ORDER BY. Considérons une table nommée li contenant les données suivantes :

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

Initialement, une simple requête GROUP_CONCAT a été utilisée :

SELECT li.client_id, group_concat(li.views) AS views, group_concat(li.percentage) FROM li GROUP BY client_id;

Cela a entraîné une concaténation non ordonnée :

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

Pour classer les vues par ordre croissant, nous pouvons utiliser GROUP_CONCAT avec ORDER BY 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

Cela renverra les résultats dans l'ordre souhaité :

client_id views percentage
1 1,2,3,4,5,6,7,8,9 52,67,33,55,66,20,80,34,56

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:
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