Sortieren von Werten in GROUP_CONCAT-Anweisungen
Mit der Funktion GROUP_CONCAT in MySQL können Sie Werte verketten, die nach einer bestimmten Spalte gruppiert sind. Standardmäßig sind die Werte jedoch nicht sortiert. Um dies zu beheben, gibt es eine einfache Lösung.
Lösung:
Die Syntax von GROUP_CONCAT mit Sortierfunktionen lautet:
GROUP_CONCAT(DISTINCT <expression> ORDER BY <order_expression> <direction> SEPARATOR <separator>)
Wobei:
Beispiel:
Um die verketteten Werte in der bereitgestellten Abfrage alphabetisch zu sortieren, können Sie sie wie folgt ändern folgt:
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
Durch die Angabe von ORDER BY parent.name innerhalb der Unterabfrage werden die Werte alphabetisch sortiert, bevor sie verkettet werden. Dadurch wird das gewünschte Ergebnis ausgegeben:
Verwaltung » Organisation
Handwerk » Tischlerei
Das obige ist der detaillierte Inhalt vonWie sortiere ich Werte in GROUP_CONCAT-Anweisungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!