delete from myTable
where id not in
(select min(id)
from myTable
group by A, B)
tj. select w nawiasach zwraca pierwszy identyfikator dla każdej grupy A i B; usunięcie wszystkich identyfikatorów, których nie ma w tym zestawie, usunie wszystkie wystąpienia kombinacji A-plus-B, które są „następne” po pierwszym wystąpieniu.
EDYTUJ :ta składnia wydaje się być problematyczna:zobacz raport o błędzie:
http://bugs.mysql.com/bug.php?id=5037
Możliwe obejście to:
delete from myTable
where id not in
(
select minid from
(select min(id) as minid from myTable group by A, B) as newtable
)