jueves 11 de febrero de 2010

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

1 comentarios:

Si quieres hacer una pregunta más específica, hazla en los foros que tenemos habilitados en LinkedIn


Ah! solo se permiten comentarios de usuarios registrados. Si tienes OpenID, bienvenido! Puedes obtener su OpenID, aquí: http://openid.net/