Heim >Datenbank >MySQL-Tutorial >Wie können die MySQL-Funktionen GROUP_CONCAT und CONCAT mehrere Zeilen in eine einzige durch Kommas getrennte Zeichenfolge umwandeln?

Wie können die MySQL-Funktionen GROUP_CONCAT und CONCAT mehrere Zeilen in eine einzige durch Kommas getrennte Zeichenfolge umwandeln?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-15 08:36:16415Durchsuche

How Can MySQL's GROUP_CONCAT and CONCAT Functions Transform Multiple Rows into a Single Comma-Separated String?

Verwendung von GROUP_CONCAT und CONCAT für die Datentransformation in MySQL

In MySQL kann das Kombinieren von Daten aus mehreren Zeilen in einer einzigen Zeichenfolge durch erreicht werden Verwendung der Funktion GROUP_CONCAT. Betrachten Sie eine Tabelle mit den folgenden Informationen:

id Name Value
1 A 4
1 A 5
1 B 8
2 C 9

Ein Ziel könnte darin bestehen, diese Daten in das folgende Format umzuwandeln:

id Column
1 A:4,5,B:8
2 C:9

Um dies zu erreichen, ist ein kombinierter Ansatz aus GROUP_CONCAT und CONCAT erforderlich eingesetzt werden kann. Hier ist die Abfrage:

select id, group_concat(`Name` separator ',') as `ColumnName`
from
(
  select id, 
  concat(`Name`, ':', group_concat(`Value` separator ',')) as Name
   from mytbl group by id, Name
) tbl
group by id;

Diese Abfrage erfolgt in zwei Phasen:

  1. Sie gruppiert zunächst nach den Spalten „id“ und „Name“ und verkettet Werte innerhalb jeder Gruppe mithilfe der Funktion GROUP_CONCAT. Dies erzeugt einen Ergebnissatz mit eindeutigen Paaren aus ID und Name, wobei der Wert in einem durch Kommas getrennten Format bereitgestellt wird.
  2. Die äußere Gruppierung nach ID-Operation kombiniert die Ergebnisse der inneren Abfrage weiter, was zu einer einzelnen Zeile für führt jede eindeutige ID mit einer durch Kommas getrennten Liste von Name:Wert-Paaren.

Durch Ausführen dieser Abfrage erhalten Sie die gewünschte Datentransformation mit Zeilen im folgenden Format:

id Column
1 A:4,5,B:8
2 C:9

Das obige ist der detaillierte Inhalt vonWie können die MySQL-Funktionen GROUP_CONCAT und CONCAT mehrere Zeilen in eine einzige durch Kommas getrennte Zeichenfolge umwandeln?. 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