In MySQL verkettet die Funktion GROUP_CONCAT() Werte aus einer Tabelle, gruppiert nach einer bestimmten Spalte. Das Standardverhalten besteht jedoch darin, die Werte in der Reihenfolge auszugeben, in der sie in der Tabelle erscheinen. Dies ist möglicherweise nicht immer das gewünschte Ergebnis, insbesondere wenn die verketteten Werte sortiert werden müssen.
Um die Werte in einer GROUP_CONCAT-Anweisung zu sortieren, können Sie die ORDER BY-Klausel in der Unterabfrage verwenden. Betrachten Sie beispielsweise die folgende Abfrage:
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
Diese Abfrage gibt die verketteten Werte der übergeordneten Kompetenznamen zurück, sortiert in aufsteigender Reihenfolge.
Crafts » Joinery Administration » Organization
Durch Angabe der ORDER BY-Klausel darin Mit der Unterabfrage können wir die Reihenfolge der verketteten Werte steuern. Dies bietet eine flexible Möglichkeit, die Ergebnisse in einer benutzerdefinierten Reihenfolge darzustellen, wodurch sie besser lesbar und organisiert werden.
Denken Sie daran, dass die ORDER BY-Klausel in den Klammern der Unterabfrage platziert werden sollte, die auf GROUP_CONCAT() folgt. Dadurch kann MySQL die Werte sortieren, bevor sie zu einer einzigen Zeichenfolge verkettet werden.
Das obige ist der detaillierte Inhalt vonWie sortiere ich Werte in einer MySQL-GROUP_CONCAT-Anweisung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!