Mastodon

Concatenar filas en una columna (MySQL)

Este truco lo vi en la documentación de MySQL (vamos, sí, sí. no es Java, pero es algo que encontré y quiero compartirlo).

Imaginemos que tenemos una tabla así
+--------+--------+
| campo1 | campo2 |
+--------+--------+
| fila1  |   a    |
| fila2  |   b    |
| fila2  |   c    |
| fila1  |   b    |
| fila3  |   b    |
| fila2  |   c    |
+--------+--------+

Y queremos concatenar todos los valores del campo2 por cada fila no repetida de campo1 así:
+--------+--------+
| campo1 | campo2 |
+--------+--------+
| fila1  |  a,b   |
| fila2  |  b,c   |
| fila3  |   b    |
+--------+--------+

Para ello, hay que usar la función de agregación GROUP_CONCAT


SELECT campo1,group_concat(distinct campo2) FROM tabla GROUP BY 1
Artículo Anterior Artículo Siguiente