Heim >Datenbank >MySQL-Tutorial >Wie kann ich die Reihenfolge der Werte in einer MySQL-GROUP_CONCAT-Anweisung steuern?
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 " » ") 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 " » ") 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!