Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie führt man mehrere Zeilen in MySQL zusammen?

Sie sollten in der Lage sein, eine Aggregatfunktion auf alle Spalten anzuwenden und dann GROUP BY id :

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

Siehe SQL Fiddle mit Demo

Was die DB-Struktur betrifft, sehe ich das einzige Problem darin, dass Sie mehrere Datensätze für denselben Benutzer einfügen. Sie sollten ein UPDATE verwenden Anweisung, um die Werte zu verwenden, anstatt sie einzufügen.

Es hört sich so an, als ob Sie den REPLACE Funktion in MySQL (hier ist ein Tutorial ). ).

Die Abfrage würde also etwa so aussehen:

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

Siehe SQL-Fiddle mit Demo