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

Sloučit a poté odstranit duplicitní položky

Nemyslím si, že to můžete udělat v SQL efektivně. Jeden pomalý způsob, jak to udělat, je něco jako:

CREATE TEMPORARY TABLE tmp_table (...);
INSERT INTO tmp_table SELECT phone, max(rating) FROM table GROUP BY phone;
TRUNCATE table;
INSERT INTO table SELECT * FROM tmp_table;

Lepším způsobem by byla uložená procedura nebo externí skript. Vyberte všechny řádky z tabulky seřazené podle phone a proveďte seskupení/sloučení/odstranění ručně (opakujte výsledky, porovnejte s phone hodnota z předchozího řádku, pokud se liší, máte novou skupinu atd.). Psaní uložených procedur v MySQL je však bolestivé, takže kód za vás psát nebudu. :)



  1. Převeďte textovou hodnotu v SQL Server z UTF8 na ISO 8859-1

  2. Database Connection se neuvolní po vypršení nečinnosti v glassfish

  3. Duplicitní název sloupce na JOIN v mysql

  4. Zacházení s integritou databáze