Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie rufe ich mehrere Zeilen als eine einzelne durch Kommas getrennte Zeile in MySQL ab?

DDD
Freigeben: 2024-11-14 13:49:02
Original
388 Leute haben es durchsucht

How to Fetch Multiple Rows as a Single Comma-Separated Row in MySQL?

Mehrere Zeilen als einzelne durch Kommas getrennte Zeile in MySQL abrufen

Problemstellung:

Sie haben zwei Tabellen, „DISH“ und „DISH_HAS_DISHES“, wobei Gerichte mit einer Eins-zu-viele-Abhängigkeit verknüpft sind. Das Ziel besteht darin, Daten aus beiden Tabellen in einem bestimmten Format abzurufen: eine durch Kommas getrennte Liste von Gerichts-IDs und Namen für jede Mahlzeit.

Vorgeschlagene Lösung mit der Funktion GROUP_CONCAT:

MySQL bietet die Funktion GROUP_CONCAT, die die Verkettung mehrerer Zeilen basierend auf einem angegebenen Trennzeichen ermöglicht. Mit dieser Funktion können Sie die gewünschte Ausgabe erzielen:

SELECT m.meal_Id, 
       GROUP_CONCAT(dish_id) dish_ids, 
       GROUP_CONCAT(dish_name) dish_names
FROM DISH_HAS_DISHES m JOIN DISH d ON (m.dish_id = d.dish_id)
GROUP BY meal_Id
Nach dem Login kopieren

Erklärung:

  1. VERBINDEN Sie „DISH_HAS_DISHES“ (m) und „DISH“ ( d) Tabellen basierend auf dem gemeinsamen Feld „dish_id“.
  2. Verwenden Sie GROUP_CONCAT(dish_id), um die Gericht-IDs für jede Mahlzeit in einer durch Kommas getrennten Zeichenfolge zu verketten. Speichern Sie dies in der Spalte „dish_ids“.
  3. Verwenden Sie auf ähnliche Weise GROUP_CONCAT(dish_name), um die Namen der Gerichte in einer durch Kommas getrennten Zeichenfolge zu verketten und diese in der Spalte „dish_names“ zu speichern.
  4. GROUP BY eat_Id stellt dies sicher Die Ergebnisse werden nach Mahlzeit-ID gruppiert, was zu einer einzelnen Zeile für jede Mahlzeit führt.

Diese Abfrage sollte das gewünschte Ausgabeformat erzeugen:

meal_id dish_ids dish_names
1 2,3,4 dish_2, dish_3, dish_4

Das obige ist der detaillierte Inhalt vonWie rufe ich mehrere Zeilen als eine einzelne durch Kommas getrennte Zeile in MySQL ab?. 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