Hvis din MySQL tabellen indeholder hundredvis eller tusindvis af poster , du ikke ønsker at manuelt se gennem hver enkelt at forsøge at identificere dubletter . MySQL har ikke en enkelt forespørgsel , som du kan anvende til at fjerne dublerede poster i en tabel , men du kan bruge en kombination af forespørgsler og udføre dem sammen for at fjerne dine double. Selv hvis dit bord bruger en primær nøgle til entydigt at identificere poster , kan du fjerne dubletter ved ikke at vælge det primære nøglefelt i dine spørgsmål. . Instruktioner
1
Log ind på din MySQL-database og få adgang til forespørgsel værktøj
2
Indtast følgende forespørgsel : Hej
oprette midlertidig TABEL temp SELECT DISTINCT col1 , col2 , col3 fRA table_name GROUP BY col1 , col2 , col3 HAVING COUNT (*) > 1 ,
Dette skaber en midlertidig tabel , der kontrollerer bordet leveres af " table_name ", og når den finder en dublet rekord , det indsætter som overlapper ind i midlertidige tabel, men kun én gang . For eksempel, hvis " table_name " har tre indgange " Jim ", " Bob " og " Bob ", de " temp " tabel vil kun have én post , " Bob ". . Hvis " col1 " fungerer som en primær nøgle-felt i tabellen , omfatter ikke " col1 " i forespørgslen og blot vælge de to andre kolonner
3
Indtast følgende forespørgsel: < br >
DELETE FROM table_name WHERE ( col1 , col2 , col3 ) IN ( SELECT col1 , col2 , col3 FROM temp ),
Denne forespørgsel kontrollerer hver post i " table_name ", og sletter alle poster, der har dubletter , inklusive originalen . For eksempel, hvis tabellen har tre indgange " Jim ", " Bob " og " Bob ", forespørgslen sletter både " Bob " poster , så kun " Jim " i " table_name ". Igen, fjerne henvisninger til " col1 " i forespørgsel, hvis " col1 " er det primære nøglefelt
4
Indtast følgende forespørgsel: .
INSERT INTO table_name ( col1 , col2 , col3 ) SELECT col1 , col2 , col3 FROM temp ,
Denne forespørgsel væsentlige kopierer alle poster fra den midlertidige tabel og indsætter dem tilbage i " table_name ". Hvis der på dette tidspunkt " table_name " kun " Jim " og " temp " kun " Bob ", efter forespørgsel, vil " table_name " have " Jim " og " Bob " poster , mens den midlertidige tabel bliver slettet . Husk at fjerne " Kol1 " referencer, hvis det er en primær nøgle.
5.
Udfør alle de forespørgsler.