sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo fusionar varias filas en MySQL?

Debería poder aplicar una función agregada a todas las columnas y luego GROUP BY id :

select id,
  max(name) name,
  max(age) age,
  max(grade) grade
from yourtable
group by id

Consulte SQL Fiddle con demostración

En cuanto a la estructura de la base de datos, el único problema que veo es que está insertando varios registros para el mismo usuario. Deberías estar usando una UPDATE declaración para usar los valores en lugar de insertar.

Parece que desea utilizar el REPLACE función en MySQL (aquí hay un tutorial ).

Entonces la consulta sería similar a esto:

REPLACE 
  INTO yourtable (`id`, `name`, `age`, `grade`) 
  VALUES (0, 'john', 11, null);

Consulte SQL Fiddle con demostración