Heim >Datenbank >MySQL-Tutorial >Wie verkette ich mehrere Zeilen zu einer einzigen Zeichenfolge mithilfe von GROUP_CONCAT und CONCAT in MySQL?

Wie verkette ich mehrere Zeilen zu einer einzigen Zeichenfolge mithilfe von GROUP_CONCAT und CONCAT in MySQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-13 01:00:10508Durchsuche

How to Concatenate Multiple Rows into a Single String Using GROUP_CONCAT and CONCAT in MySQL?

Verwenden von GROUP_CONCAT innerhalb von CONCAT in MySQL

Um mehrere Zeilen zu einer einzigen Zeichenfolge zu verketten und sie gleichzeitig nach gemeinsamen Werten zu gruppieren, können Sie die verwenden GROUP_CONCAT-Funktion. Lassen Sie uns die Anwendung anhand eines praktischen Beispiels untersuchen.

Frage:

Gegeben sei eine Tabelle namens mytbl mit Daten wie folgt:

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

Wie kann Wir transformieren diese Daten in Folgendes Format:

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

Antwort:

Um dies zu erreichen, können Sie eine Kombination aus verschachtelten GROUP_CONCAT- und CONCAT-Funktionen verwenden:

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;

Erklärung:

  • Die innerste Abfrage gruppiert die Daten nach Sowohl ID als auch Name verketten dann die Spalte „Wert“ mit einem Komma als Trennzeichen für jede Gruppe.
  • Die äußere Abfrage gruppiert die Ergebnisse nach ID und verkettet die zuvor verketteten Namenszeichenfolgen, die nun die Werte für jeden Namen enthalten innerhalb jeder ID.

Diese verschachtelte Kombination aus GROUP_CONCAT und CONCAT ermöglicht es Ihnen, die gewünschte Ausgabe zu generieren, wobei jede ID einem zugeordnet ist Durch Kommas getrennte Zeichenfolge des Namens und des entsprechenden Werts.

Das obige ist der detaillierte Inhalt vonWie verkette ich mehrere Zeilen zu einer einzigen Zeichenfolge mithilfe von GROUP_CONCAT und CONCAT in MySQL?. 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