„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 15.11.2024
Durchsuche:521

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

Werte in einer GROUP_CONCAT-Anweisung anordnen

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 in 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 " » ") 
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

Um die Werte in absteigender Reihenfolge zu sortieren, verwenden Sie auf ähnliche Weise ein DESC-Schlüsselwort nach ASC:

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 DESC) SEPARATOR "<br />\n") AS competences
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3