Heim >Datenbank >MySQL-Tutorial >Wie sortiere ich Werte in GROUP_CONCAT-Anweisungen?

Wie sortiere ich Werte in GROUP_CONCAT-Anweisungen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-19 19:02:02659Durchsuche

How to Sort Values in GROUP_CONCAT Statements?

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:

  • : Die Werte verkettet werden
  • : Die zum Sortieren verwendete Spalte oder der Ausdruck
  • : Die Sortierrichtung (ASC oder DESC)
  • : Das Trennzeichen, das zum Trennen der verketteten Werte verwendet wird

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 " &raquo; ") 
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn