[MySQL] Usuwanie takich samych rekordów

0

Mam mały problem! ma baze danych imiona:


kolumna1 | kolumna2

cos tam1 | ala
cos tam2 | ala
cos tam3 | ala
cos tam4 | ala
cos tam5 | franek
cos tam6 | piotrek

Jak usunąć powtarzające się rekordy z kolumny2. Tak aby po usunięcią tabela wyglądała tak:


kolumna1 | kolumna2

cos tam1 | ala
cos tam5 | franek
cos tam6 | piotrek

0

W mysqlu trzeba chyba troche bardziej pokombinowac, bo nie mozna dac delete i select tej samej tabeli w jednym zapytaniu o ile pamietam.

Stworz sobie taka sama tabele i wykonaj takie zapytania:

insert into tabela2 select kolumna1, kolumna2 from tabela1 t1 where (select count(*) from tabela1 where kolumna_klucz = t1.kolumna_klucz) > 1 limit 1, 99999999
delete from tabela1 where kolumna_klucz in (select kolumna_klucz from tabela2)
drop table tabela2
0

Załóż unikalny index na kolumne2 z klauzulą IGNORE - usunie Ci wszystkie duplikaty i uniemożliwi tworzenie nowych. Operacje wstawiania realizuj albo przez INSERT IGNORE jeśli chcesz mieć w bazie wartość innych kolumn przypisaną za pierwszym razem, albo REPLACE jeśli chcesz aktualizować wartości pozostałych kolumn.

1 użytkowników online, w tym zalogowanych: 0, gości: 1