Dit is het vaak voorkomende probleem om dubbele gegevens in de mysql-tabel te verwerken. Als u aan een enorme hoeveelheid gegevens werkt, heeft u mogelijk met dit probleem te maken, dus in dit bericht ga ik u een MYsql-query laten zien waarmee u dubbele gegevens kunt vinden en verwijder het. Dit is ook de meest gestelde vraag tijdens het interview.
Stel dat we 25.000 bedrijven in onze database hebben, en er zijn enkele dubbele bedrijven in uw bedrijventabel en u dubbele bedrijven wilt vinden en volledig uit uw bedrijventabel wilt verwijderen, gebruik dan onderstaande mysql-query's.
TB_COMPANIES
ID | COMPANY_NAME | ADRES | CONTACT_PERSON_NAME | EMAILID | TELEFOON |
---|---|---|---|---|---|
1 | HCL LTD. | NOIDA | XXXXXXX | [email protected] | xxxxxxxxx |
2 | WIPRO | DELHI | XXXXXXX | [email protected] | xxxxxxxxx |
3 | HCL LTD. | NOIDA | XXXXXXX | [email protected] | xxxxxxxxx |
.. | .. | .. | .. | x.. | … |
.. | .. | .. | .. | x.. | … |
.. | .. | .. | .. | x.. | … |
In bovenstaande tabel zijn er dubbele records van bedrijf HCL die we moeten vinden en verwijderen.
MYSql-query om dubbele gegevens te vinden.
SELECT COMPANY_NAME FROM TB_COMPANIES WHERE COMPANY_NAME IN ( SELECT COMPANY_NAME FROM TB_COMPANIES GROUP BY COMPANY_NAME HAVING COUNT( COMPANY_NAME ) >1 ) |
MYSql-query om dubbele gegevens te verwijderen.
DELETE C1 FROM TB_COMPANIES C1,TB_COMPANIES C2 WHERE C1.ID < C2.ID AND C1.COMPANY_NAME = C2.COMPANY_NAME |
Hierboven zag je, met behulp van de MYsql-subquery en de self-join-functie kun je eenvoudig een query schrijven om dubbele gegevens te vinden en te verwijderen.