Skip to Content

No te olvides de visitar:

Group_concat, esa pequeña maravilla del MySQL

Categoría:

Habitualmente trabajo con bases de datos MySQL, y al hacer agrupaciones en las select, echaba en falta un comando que me mostrara los registros que estaban agrupados en cada fila.

Por si no me he explicado bien, pondré un ejemplo. Tenemos una tabla de usuarios con su nombre y apellidos y un id de ese usuario, y queremos obtener una lista de los id's de usuario agrupados por nombre....esto que parece tan sencillo no se podría hacer si no fuera por el comando group_concat, de la siguiente manera:

select nombre, group_concat(id) from usuarios group by nombre
Nos mostraría:

nombre -> group_concat(id)
paco      -> 1,3,4,123
ramon   -> 2,7,12,45
faustino -> 74.1234,13

etc....

Como veis para algunas cosas viene muy bien. El separador que queremos que use para separar los registros lo podemos indicar nosotros mediante el atributo separator, de la siguiente forma:

select nombre, group_concat(id separator "-") from usuarios group by nombre

Posiblemente esto ya lo conocía mucha gente, ya que lleva desde MySQL 4 y pico...pero como yo no lo conocía y me parece curioso, quería compartirlo con vuesas mercedes.

¡Un saludo a todos!

Gracias tu explicacion ha sido de las mejores q encontre

Llevo un rato buscando algo para ese tipo de selecciones y gracias a tu explicación vi la luz, bueno amigo buena vibra y de nuevo gracias.

Muy interesante para los que

Muy interesante para los que nos gustan las matrices nos viciaremos con el split() xD

Escribir un nuevo comentario

Tu dirección de email no se mostrará públicamente.
  • No se admite ninguna etiqueta HTML
  • Saltos automáticos de líneas y de párrafos.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.

Más información sobre opciones de formato