sql >> Databasteknik >  >> RDS >> Mysql

Hur slår man ihop flera rader i MySQL?

Du bör kunna tillämpa en aggregatfunktion på alla kolumner och sedan GROUP BY id :

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

Se SQL-fiol med demo

När det gäller DB-strukturen är det enda problemet jag ser att du infogar flera poster för samma användare. Du bör använda en UPDATE för att använda värdena istället för att infoga.

Det låter som att du vill använda REPLACE funktion i MySQL (här är en handledning ).

Så frågan skulle likna denna:

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

Se SQL-fiol med demo



  1. PRVG-2027 Ägaren till filen är inkonsekvent över noder

  2. Vilken hierarkisk modell ska jag använda? Närliggande, kapslad eller uppräknad?

  3. MySQL pivottabeller - rader till kolumner. Fråga

  4. MySQL:infoga värden från en annan tabell i en kolumn