Usuwanie zduplikowanych rekordów w bazie MySql

Posted on

programming5

Witam

Kolejny wpis z cyklu rozwiązywanie nietypowych, choć banalnych problemów. Samo rozwiązanie może nie jest takie banalne, ale skuteczne.

Poszukując kod SQL, który usunie zduplikowane wpisy w bazie danych natknąłem się na szereg niedziałających poprawnie przykładów.

Zadziałał jeden. Warto wspomnieć, iż na stronie anglojęzycznej napisane jest, że właśnie łączenie wyników selecta poprzez joiny dało u mnie pozytywny efekt.

Wstawiam poprawny kod :


delete bad_rows.*
from domenyGlowna as bad_rows
inner join (
select Nazwa, MIN(ID) as min_id
from domenyGlowna
group by Nazwa
having count(*) > 1
) as good_rows on good_rows.Nazwa = bad_rows.Nazwa
and good_rows.min_id <> bad_rows.ID

Pozdrawiam i zapraszam do dalszej zabawy z bazami MySql


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *