MySQL: Mehrere Zeilen in eine einzelne durch Kommas getrennte Zeile konvertieren
Innerhalb einer MySQL-Datenbank kann es vorkommen, dass Sie dies möchten Fasst mehrere Zeilen zu einer einzigen Zeile zusammen, wobei bestimmte Spalten als durch Kommas getrennte Werte dargestellt werden. Dies kann durch die Verwendung der Funktion GROUP_CONCAT erreicht werden, wie im folgenden Beispielszenario gezeigt.
Beispielszenario:
Betrachten Sie zwei Tabellen: DISH und DISH_HAS_DISHES, wobei DISH gilt alle verfügbaren Gerichte, und DISH_HAS_DISHES definiert eine Eins-zu-viele-Beziehung zwischen DISHes. Die DISH-Tabelle hat die folgende Struktur:
DISH: dish_id dish_name 1 dish_1 2 dish_2 3 dish_3 4 dish_4
Während die DISH_HAS_DISHES-Tabelle so aussieht:
DISH_HAS_DISHES: meal_id dish_id 1 2 1 3 1 4
Ziel:
Unser Ziel besteht darin, die Daten in ein Format umzuwandeln, in dem jede Mahlzeit eine entsprechende Zeile hat, in der die IDs und Namen der Gerichte als durch Kommas getrennte Werte aufgeführt sind. Die gewünschte Ausgabe ist:
meal_id dish_ids dish_names 1 2,3,4 dish_2, dish_3, dish_4
Lösung:
Um dies zu erreichen, verwenden wir die Funktion GROUP_CONCAT zusammen mit einigen einfachen JOIN-Operationen:
SELECT m.meal_id, GROUP_CONCAT(dish_id) AS dish_ids, GROUP_CONCAT(dish_name) AS dish_names FROM DISH_HAS_DISHES m JOIN DISH d ON (m.dish_id = d.dish_id) GROUP BY meal_id
In dieser Abfrage:
Durch Ausführen dieser Abfrage erhalten wir die gewünschte Ausgabe, wobei jede Zeile eine Mahlzeit, ihre Gerichts-IDs und die entsprechenden Gerichtsnamen darstellt, alle als durch Kommas getrennte Werte dargestellt. Diese Technik ist besonders nützlich, wenn Sie mit tabellarischen Daten arbeiten und Informationen über mehrere Zeilen hinweg konsolidieren.
Das obige ist der detaillierte Inhalt vonWie kombiniere ich mehrere Zeilen in einer einzigen durch Kommas getrennten Zeile in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!