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 únicosPalabra 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á garantizadoOpcional
- sort_expression
- Columna o expresión por la que se ordena
- ASC | DESC
- Sentido; por defecto, ASCPalabra claveOpcionalASCDESC
- SEPARATOR str
- Separador; por defecto, una coma sin espacioOpcional
- str
- Separador como cadena; '' para no usar ningunoVARCHAR
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;Estados únicos separados por comas
MySQL 8.4
SELECT GROUP_CONCAT(
DISTINCT status
ORDER BY status SEPARATOR ', '
) AS statuses
FROM FamilyMembers;Nombres por estado
MySQL 8.4
SELECT status,
GROUP_CONCAT(
member_name
ORDER BY member_name SEPARATOR ', '
) AS members
FROM FamilyMembers
GROUP BY status;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.