Referencia de funciones

GROUP_CONCAT

Equivalente en PostgreSQL:

Une los valores de un grupo de filas en una cadena con un separador.

MySQL 8.4
GROUP_CONCAT([DISTINCT] expr [ORDER BY sort_expression [ASC | DESC]] [SEPARATOR str])
  • [ ]parte opcional
  • a | buna de las opciones
DISTINCT
Unir solo los valores únicos
Palabra claveOpcional
expr
Expresión cuyos valores se unen
ORDER BY sort_expression [ASC | DESC]
Orden de los valores en la cadena; sin él, el orden no está garantizado
Opcional
sort_expression
Columna o expresión por la que se ordena
ASC | DESC
Sentido; por defecto, ASC
Palabra claveOpcional
ASCDESC
SEPARATOR str
Separador; por defecto, una coma sin espacio
Opcional
str
Separador como cadena; '' para no usar ninguno
VARCHAR

Valor devuelto

Cadena; los NULL se omiten; NULL si todos los valores son NULL

Ejemplos

Todos los nombres en una cadena

MySQL 8.4
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

Estados únicos separados por comas

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

Nombres por estado

MySQL 8.4
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

Detalles

Sin ORDER BY, los valores aparecen en el orden en que el servidor los ha leído, y ese orden puede cambiar de una ejecución a otra. Por defecto, el resultado se recorta a 1024 bytes (variable group_concat_max_len), con un aviso y sin error.

Véase también