sql >> Database >  >> RDS >> Mysql

Hoe meerdere rijen samenvoegen in MySQL?

U zou een aggregatiefunctie op alle kolommen moeten kunnen toepassen en vervolgens GROUP BY id :

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

Zie SQL Fiddle met demo

Wat de DB-structuur betreft, is het enige probleem dat ik zie, dat u meerdere records voor dezelfde gebruiker invoegt. Je zou een UPDATE . moeten gebruiken statement om de waarden te gebruiken in plaats van in te voegen.

Het klinkt alsof je de REPLACE functie in MySQL (hier is een tutorial ).

Dus de vraag zou ongeveer als volgt zijn:

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

Zie SQL Fiddle met demo



  1. Heerlijk eten (en gegevens) serveren - een gegevensmodel voor restaurants

  2. Hoe het weeknummer van een datum te extraheren in PostgreSQL

  3. Hoe het exacte nummer te zoeken in php

  4. Verschil tussen WITH-clausule en subquery?