Group_concat, esa pequeña maravilla del MySQL

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!

0 comentarios: