Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como mesclar várias linhas no MySQL?


Você deve ser capaz de aplicar uma função agregada a todas as colunas e então GROUP BY id :
select id,
  max(name) name,
  max(age) age,
  max(grade) grade
from yourtable
group by id

Consulte SQL Fiddle with Demo

Quanto à estrutura do banco de dados, o único problema que vejo é que você está inserindo vários registros para o mesmo usuário. Você deve estar usando um UPDATE instrução para usar os valores em vez de inserir.

Parece que você quer usar o REPLACE função no MySQL (aqui está um tutorial ).

Então a consulta seria semelhante a esta:
REPLACE 
  INTO yourtable (`id`, `name`, `age`, `grade`) 
  VALUES (0, 'john', 11, null);

Consulte SQL Fiddle with Demo