Heim >Datenbank >MySQL-Tutorial >Wie kann ich Ergebnisse innerhalb von GROUP_CONCAT mit ORDER BY sortieren?
Ergebnisse in GROUP_CONCAT mit ORDER BY sortieren
In einer Situation, in der Sie eine Tabelle mit mehreren Zeilen pro Client haben und eine Gruppierung wünschen Um die Daten in einer bestimmten Reihenfolge zu verketten und zu verketten, kann GROUP_CONCAT mit der ORDER BY-Klausel verwendet werden. Betrachten wir eine Tabelle mit dem Namen li, die die folgenden Daten enthält:
client_id | views | percentage |
---|---|---|
1 | 6 | 20 |
1 | 4 | 55 |
1 | 9 | 56 |
1 | 2 | 67 |
1 | 7 | 80 |
1 | 5 | 66 |
1 | 3 | 33 |
1 | 8 | 34 |
1 | 1 | 52 |
Zunächst wurde eine einfache GROUP_CONCAT-Abfrage verwendet:
SELECT li.client_id, group_concat(li.views) AS views, group_concat(li.percentage) FROM li GROUP BY client_id;
Dies führte zu einer ungeordneten Verkettung:
client_id | views | group_concat(li.percentage) |
---|---|---|
1 | 6,4,9,2,7,5,3,8,1 | 20,55,56,67,80,66,33,34,52 |
Um die Ansichten in aufsteigender Reihenfolge zu ordnen, können wir GROUP_CONCAT mit ORDER BY as verwenden folgt:
SELECT li.client_id, group_concat(li.views ORDER BY li.views ASC) AS views, group_concat(li.percentage ORDER BY li.views ASC) AS percentage FROM li GROUP BY client_id
Dadurch werden die Ergebnisse in der gewünschten Reihenfolge zurückgegeben:
client_id | views | percentage |
---|---|---|
1 | 1,2,3,4,5,6,7,8,9 | 52,67,33,55,66,20,80,34,56 |
Das obige ist der detaillierte Inhalt vonWie kann ich Ergebnisse innerhalb von GROUP_CONCAT mit ORDER BY sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!