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

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

DDD
Freigeben: 2024-12-01 15:44:12
Original
581 Leute haben es durchsucht

How Can I Control the Order of Values in MySQL's GROUP_CONCAT Function?

Ergebnisse in GROUP_CONCAT anordnen

Wenn Sie die Funktion GROUP_CONCAT zum Kombinieren von Werten für gruppierte Zeilen verwenden, kann es hilfreich sein, die Reihenfolge dieser Werte beizubehalten.

Problem: Ungeordnete Ergebnisse

Angenommen, wir haben eine Tabelle namens „li“ mit den Spalten: client_id, Ansichten, und Prozentsatz. Wir möchten die Zeilen nach client_id gruppieren und die Ansichtswerte verketten. Wir versuchen zunächst Folgendes:

SELECT li.client_id,
       group_concat(li.views) AS views,
       group_concat(li.percentage) FROM li
       GROUP BY client_id;
Nach dem Login kopieren

Dies führt zu Ergebnissen mit verketteten Ansichten, jedoch in einer willkürlichen Reihenfolge:

+-----------+-------------------+-----------------------------+
| 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  |
+-----------+-------------------+-----------------------------+
Nach dem Login kopieren

Lösung: Reihenfolge innerhalb von GROUP_CONCAT

An Ordnen Sie die Ergebnisse innerhalb von GROUP_CONCAT. Wir können ORDER BY innerhalb der Funktion verwenden:

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
Nach dem Login kopieren

Dadurch werden die Ergebnisse geordnet Zeigt die Spalte in aufsteigender Reihenfolge an, wobei die entsprechenden Prozentwerte in derselben Reihenfolge beibehalten werden:

+-----------+-------------------+----------------------------+
| client_id | views             | percentage                 |
+-----------+-------------------+----------------------------+
|         1 | 1,2,3,4,5,6,7,8,9 | 52,67,33,55,66,20,80,34,56 |
+-----------+-------------------+----------------------------+
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich die Reihenfolge der Werte in der MySQL-Funktion GROUP_CONCAT steuern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage