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

Mysql Duplicate Rows (Duplikat erkannt mit 2 Spalten)

delete from myTable 
where id not in
(select min(id)
from myTable
group by A, B)

d.h. die Auswahl in Klammern gibt die erste ID für jede Gruppierung von A und B zurück; Durch das Löschen aller IDs, die nicht in diesem Satz enthalten sind, werden alle Vorkommen einer A-plus-B-Kombination entfernt, die "nach" ihrem ersten Vorkommen sind.

BEARBEITEN :diese Syntax scheint problematisch zu sein:siehe Fehlerbericht:

http://bugs.mysql.com/bug.php?id=5037

Eine mögliche Problemumgehung ist dies:

delete from myTable 
where id not in
(
      select minid from 
      (select min(id) as minid from myTable group by A, B) as newtable
)