Als je MySQL tabel bevat honderden of duizenden records , hoeft u niet handmatig wilt kijken door een ieder te proberen om dubbele records te identificeren . MySQL heeft geen enkele query die u kunt gebruiken om dubbele vermeldingen in een tabel te verwijderen , maar u kunt een combinatie van queries te gebruiken en uit te voeren ze samen om uw dubbelspel te elimineren . Zelfs als uw tafel maakt gebruik van een primaire sleutel tot een unieke registers identificeren , kunt u duplicaten te verwijderen door het niet selecteren van het primaire-sleutelveld in je queries. . Instructies 1 Log in om je MySQL database en toegang tot de query tool kopen van 2 Voer de volgende query : CREATE TIJDELIJKE RUIMTE temp SELECT DISTINCT col1 , col2 , col3 FROM tabel_naam GROUP BY col1 , col2 , col3 HAVING COUNT ( * ) > 1 ; Dit creëert een tijdelijke tabel die de door " tabel_naam " geleverde tafel controleert en wanneer zij constateert een dubbele record , het voegt dat dupliceren in de tijdelijke tabel , maar slechts een keer . Als bijvoorbeeld " table_name " heeft drie ingangen , " Jim , " " Bob " en " Bob , " de " temp " tafel zal slechts een record , " Bob . " . Als ' col1 ' fungeert als een primaire sleutel veld in de tabel , zijn exclusief " col1 " in de query en selecteert u gewoon de twee andere kolommen 3 Voer de volgende query : < br > DELETE FROM tabelnaam WHERE ( col1 , col2 , col3 ) iN ( SELECT col1 , col2 , col3 FROM temp ) ; Deze query controleert elke record in " tabel_naam " en verwijdert alle records die duplicaten hebben , inclusief de originele . Bijvoorbeeld , als de tabel drie items , " Jim ", " Bob " en " Bob , Bob " platen , waardoor alleen " " de query zowel delete " Jim " in " table_name . " Nogmaals , verwijdert verwijzingen naar ' col1 ' in de query als ' col1 ' is de primaire sleutel veld 4 Voer de volgende query : . INSERT INTO tabelnaam ( col1 , col2 , col3 ) SELECT col1 , col2 , col3 FROM temp ; Deze query wezen kopieert alle records uit de tijdelijke tabel en plaatst ze terug in " table_name . " Als op dit punt " tabel_naam " heeft slechts " Jim " en " temp " slechts " Bob , " na de query , zal " tabel_naam " " Jim " en " Bob " records , terwijl de tijdelijke tabel wordt verwijderd . Vergeet niet om ' col1 ' verwijzingen te verwijderen als het een primaire sleutel . 5 Uitvoeren van alle queries.
|