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
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);