Maison  >  Article  >  base de données  >  Comment trier les valeurs dans une chaîne GROUP_CONCAT dans MySQL ?

Comment trier les valeurs dans une chaîne GROUP_CONCAT dans MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-16 10:27:03843parcourir

How to Sort Values Within a GROUP_CONCAT String in MySQL?

Tri des valeurs GROUP_CONCAT dans MySQL

Dans le domaine de MySQL, vous pouvez rencontrer le besoin de manipuler les données renvoyées par une instruction GROUP_CONCAT. Une exigence courante consiste à trier les valeurs dans la chaîne concaténée.

Pour y parvenir, vous pouvez exploiter le joyau caché de la fonction GROUP_CONCAT : la clause ORDER BY. En ajoutant une clause ORDER BY à la sous-requête dans GROUP_CONCAT, vous pouvez trier les valeurs avant qu'elles ne soient concaténées.

Par exemple, considérons la requête suivante :

GROUP_CONCAT((SELECT GROUP_CONCAT(parent.name SEPARATOR " » ") 
FROM test_competence AS node, test_competence AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt 
  AND node.id = l.competence 
  AND parent.id != 1 
ORDER BY parent.lft) SEPARATOR "<br />\n") AS competences

Cette requête renvoie des lignes avec les valeurs concaténées de la colonne parent.name, triées par ordre croissant en fonction de la colonne parent.lft.

Cependant, si vous désirez un ordre spécifique, tel que l'ordre décroissant, ajustez simplement la clause ORDER BY :

... ORDER BY parent.lft DESC

Il convient de noter que la clause ORDER BY dans GROUP_CONCAT n'est applicable qu'à la sous-requête la plus interne. Si vous disposez d'une sous-requête multicouche, les requêtes externes ne seront pas affectées par la clause ORDER BY.

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