Om MySQL tabellen innehåller hundratals eller tusentals poster , vill du inte att manuellt söka igenom var och en att försöka identifiera dubbletter . MySQL har inte en enda fråga som du kan använda för att ta bort dubbla poster i en tabell , men du kan använda en kombination av frågor och verkställa dem tillsammans för att eliminera dina dubblar . Även om tabellen använder en primärnyckel för att unikt identifiera poster , kan du ta bort dubbletter genom att inte välja primärnyckelfältet i dina frågor . . Instruktioner
1
logga in på din MySQL-databas och få tillgång till frågeverktyg
2
Ange följande fråga :
skapa temporär tabell temp SELECT DISTINCT col1 , col2 , col3 FROM tabellnamn GROUP BY col1 , col2 , col3 sOM COUNT ( * ) > 1 ,
Detta skapar en temporär tabell som kontrollerar bordet levereras av " tabellnamn " och när den hittar en dubblettpost , det skär som duplicerar i den tillfälliga tabellen , men bara en gång . Till exempel, om " tabellnamn " har tre poster , " Jim ", " Bob " och " Bob ", den " temp " tabellen endast kommer att ha en post , " Bob . " . Om " col1 " fungerar som en primär nyckel fält i tabellen , inte omfattar " col1 " i frågan och helt enkelt välja de två andra kolumnerna
3
Ange följande fråga :
DELETE FROM tabellnamn WHERE ( col1 , col2 , col3 ) iN ( SELECT col1 , col2 , col3 från temp ) ;
Denna fråga kontrollerar varje post i " tabellnamn " och tar bort alla poster som har dubbletter , inklusive originalet . Till exempel, om bordet har tre poster , " Jim ", " Bob " och " Bob ", frågan kommer att ta bort både "Bob " poster , vilket innebär att endast " Jim " i " tabellnamn . " Återigen , ta bort referenser till " col1 " i frågan om " col1 " är primärnyckelfältet
4
Ange följande fråga : .
INSERT INTO tabellnamn ( col1 , col2 , col3 ) SELECT col1 , col2 , col3 från temp ,
Denna fråga kopierar väsentligen alla poster från den temporära tabellen och infogar dem tillbaka till " tabellnamn . " Om det vid denna tidpunkt " tabellnamn " bara " Jim " och " temp " bara har " Bob ", efter förfrågan , kommer " tabellnamn " ha " Jim " och "Bob " poster medan den temporära tabellen tas bort . Kom ihåg att ta bort " col1 " referenser om det är en primär nyckel .
5
Utför alla frågor .