sql >> Database teknologi >  >> RDS >> Mysql

Hvordan flettes flere rækker i MySQL?

Du bør være i stand til at anvende en aggregeret funktion på alle kolonnerne og derefter GROUP BY id :

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

Se SQL Fiddle with Demo

Hvad angår DB-strukturen, er det eneste problem, jeg ser, at du indsætter flere poster for den samme bruger. Du bør bruge en UPDATE sætning for at bruge værdierne i stedet for at indsætte.

Det lyder som om du vil bruge REPLACE funktion i MySQL (her er en tutorial ).

Så forespørgslen ville ligne denne:

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

Se SQL Fiddle with Demo



  1. Forkerte resultater med Merge Join

  2. Aktiver logning i docker mysql container

  3. MySQLdb Python indsæt %d og %s

  4. Postgres dynamiske forespørgselsfunktion