MySQL-Zeilen in ein Feld verketten

1. Definition und Bedeutung:
Das Verketten von Zeilen in MySQL bezieht sich auf die Praxis, mehrere Zeileneinträge zu einem einzelnen String oder Wert zusammenzuführen. Das ist besonders nützlich, wenn man aus einer Tabelle, die mehrere Zeilen für einen bestimmten Eintrag hat, einen konsolidierten Eintrag erzeugen möchte.

2. Funktionen für das Verketten:
MySQL bietet für diesen Zweck zwei Hauptfunktionen:

  • GROUP_CONCAT(): Eine eingebaute Funktion, die Zeilen aus einer Gruppe zusammenführt.
  • CONCAT(): Eine Funktion, die Strings aus unterschiedlichen Feldern oder konstanten Zeichenketten zusammenfügt.

3. Anwendungsbeispiel mit GROUP_CONCAT():
Angenommen, Sie haben eine Tabelle Bestellungen mit den Feldern Kunde und Produkt. Ein Kunde kann mehrere Produkte bestellen:

| Kunde  | Produkt   |
|--------|----------|
| Max    | Apfel    |
| Max    | Banane   |
| Lisa   | Birne    |

Um eine Liste der Produkte pro Kunde zu erhalten, können Sie GROUP_CONCAT verwenden:

SELECT Kunde, GROUP_CONCAT(Produkt) AS Produktliste 
FROM Bestellungen 
GROUP BY Kunde;

Das Ergebnis wäre:

| Kunde  | Produktliste         |
|--------|----------------------|
| Max    | Apfel,Banane         |
| Lisa   | Birne                |

4. Limitierungen:
Beachten Sie, dass GROUP_CONCAT() eine maximale Länge für den zurückgegebenen String hat, die durch die Systemvariable group_concat_max_len bestimmt wird. Es kann erforderlich sein, diesen Wert zu erhöhen, wenn die konsolidierten Daten diese Grenze überschreiten.

5. Fazit:
Das Verketten von Zeilen in MySQL ist ein leistungsfähiges Werkzeug, um Daten zu konsolidieren und übersichtlicher zu gestalten. Durch die richtige Anwendung der oben genannten Funktionen kann die Datenabfrage optimiert und angepasst werden, um den spezifischen Anforderungen gerecht zu werden. Es ist jedoch wichtig, sich der systembedingten Limitierungen bewusst zu sein und sicherzustellen, dass die konsolidierten Daten diese nicht überschreiten.