Tri des valeurs dans les instructions GROUP_CONCAT
La fonction GROUP_CONCAT dans MySQL vous permet de concaténer des valeurs regroupées par une colonne spécifiée. Cependant, par défaut, les valeurs ne sont pas triées. Pour résoudre ce problème, il existe une solution simple.
Solution :
La syntaxe de GROUP_CONCAT avec des capacités de tri est :
GROUP_CONCAT(DISTINCT <expression> ORDER BY <order_expression> <direction> SEPARATOR <separator>)
Où :
Exemple :
Dans la requête fournie, pour trier les valeurs concaténées par ordre alphabétique, vous pouvez la modifier comme suit :
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 GROUP BY parent.id ORDER BY parent.name) SEPARATOR "<br />\n") AS competences
En spécifiant ORDER BY parent.name dans la sous-requête, les valeurs seront triées par ordre alphabétique avant d'être concaténées. Cela affichera le résultat souhaité :
Administration » Organisation
Artisanat » Menuiserie
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!