SQL Academy
Premium
Funktionsreferenz

GROUP_CONCAT

Entsprechung in PostgreSQL:

Verbindet die Werte einer Gruppe von Zeilen zu einem String mit Trennzeichen.

MySQL 8.1
GROUP_CONCAT([DISTINCT] expr [ORDER BY ...] [SEPARATOR str])

Parameter

DISTINCTSchlüsselwortoptional
Nur eindeutige Werte verbinden
expr
Ausdruck, dessen Werte verbunden werden
ORDER BYoptional
Reihenfolge der Werte im String; ohne sie ist die Reihenfolge nicht garantiert
SEPARATOR strVARCHARoptional
Trennzeichen, standardmäßig ein Komma ohne Leerzeichen

Rückgabewert

String; NULL-Werte werden übersprungen, NULL, wenn alle Werte NULL sind

Beispiele

Alle Namen in einem String

MySQL 8.1
SELECT GROUP_CONCAT(member_name)
FROM FamilyMembers;
GROUP_CONCAT(member_name)
Headley Quincey,Flavia Quincey,Andie Quincey,Lela Quincey,Annie Quincey,Ernest Forrest,Constance Forrest,Wednesday Addams

Eindeutige Status mit Kommas

MySQL 8.1
SELECT GROUP_CONCAT(
		DISTINCT status
		ORDER BY status SEPARATOR ', '
	) AS statuses
FROM FamilyMembers;
statuses
daughter, father, mother, son

Namen nach Status

MySQL 8.1
SELECT status,
	GROUP_CONCAT(
		member_name
		ORDER BY member_name SEPARATOR ', '
	) AS members
FROM FamilyMembers
GROUP BY status;
statusmembers
daughterAnnie Quincey, Lela Quincey, Wednesday Addams
fatherErnest Forrest, Headley Quincey
motherConstance Forrest, Flavia Quincey
sonAndie Quincey

Details

Ohne ORDER BY kommen die Werte in der Reihenfolge, in der der Server sie gelesen hat, und sie kann sich von Lauf zu Lauf ändern. Standardmäßig wird das Ergebnis auf 1024 Bytes gekürzt (Variable group_concat_max_len), mit einer Warnung und ohne Fehler.

Siehe auch