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. Excelente aporte!!! Gracias!!

    ردحذف
  2. SELECT
    CONCAT(group_concat(campo2),".") as cadenacampo2,
    tabla.campo1
    FROM transportes
    GROUP BY
    transportes.campo1

    ردحذف
  3. Y si quieres concatenar pero desde java es decir quiero que salgan nombre y apellido paterno con el materno juntos pero desde java teniendo la base de datos conectada a java

    ردحذف

إرسال تعليق

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


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

المشاركات الشائعة من هذه المدونة

Groovy: Un lenguaje dinámico y ágil para la Plataforma Java

Cambiar ícono a un JFrame

UML en NetBeans