sql >> Databáze >  >> RDS >> Mysql

Jak sloučit více řádků v MySQL?

Měli byste být schopni použít agregační funkci na všechny sloupce a poté GROUP BY id :

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

Viz SQL Fiddle s ukázkou

Pokud jde o strukturu DB, jediný problém, který vidím, je, že vkládáte více záznamů pro stejného uživatele. Měli byste používat UPDATE příkaz použít hodnoty místo vkládání.

Zdá se, že chcete použít REPLACE funkce v MySQL (zde je návod ).

Dotaz by tedy byl podobný tomuto:

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

Viz SQL Fiddle s ukázkou



  1. Vytváříte obslužnou rutinu protokolování pro připojení k Oracle?

  2. Dosažení limitu parametru 2100 (SQL Server) při použití Contains()

  3. Použití LogMiner k nalezení aktuálních změn

  4. Vytvořte soubor Excel (.xlsx) pomocí PL/SQL