Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Reihenfolge der Werte in einer MySQL-GROUP_CONCAT-Anweisung steuern?

Wie kann ich die Reihenfolge der Werte in einer MySQL-GROUP_CONCAT-Anweisung steuern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-29 19:50:13828Durchsuche

How Can I Control the Order of Values in a MySQL GROUP_CONCAT Statement?

Werte in einer GROUP_CONCAT-Anweisung ordnen

In MySQL kombiniert GROUP_CONCAT Werte aus einer Spalte basierend auf einer bestimmten Gruppierung. Die Reihenfolge der verketteten Werte wird jedoch normalerweise durch die Reihenfolge bestimmt, in der die Gruppierung erfolgt. Um die Sortierung dieser Werte zu steuern, ist eine bestimmte Syntax erforderlich.

Um die verketteten Werte in einer GROUP_CONCAT-Anweisung zu sortieren, verwenden Sie eine ORDER BY-Klausel innerhalb der verschachtelten Abfrage. 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

Um die verketteten Kompetenzwerte in aufsteigender Reihenfolge zu sortieren, ändern Sie die Abfrage wie 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 
ORDER BY parent.lft ASC) SEPARATOR "<br />\n") AS competences

Ähnlich, um die Werte in absteigender Reihenfolge zu sortieren Verwenden Sie in der Reihenfolge ein DESC-Schlüsselwort nach ASC:

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 
ORDER BY parent.lft DESC) SEPARATOR "<br />\n") AS competences

Das obige ist der detaillierte Inhalt vonWie kann ich die Reihenfolge der Werte in einer MySQL-GROUP_CONCAT-Anweisung steuern?. 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