sql >> Database >  >> RDS >> Mysql

Query om dubbele gegevens uit de MYSql-tabel te vinden en te verwijderen

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.



Als je dit bericht leuk vindt, vergeet dan niet je te abonneren op mijn openbare notitieboek voor meer nuttige dingen


  1. Hoe gebruiker in Superuser te veranderen in PostgreSQL

  2. Hoe een poortnummer op te geven in de SQL Server-verbindingsreeks?

  3. Problemen oplossen Illegale mix van sorteringen fout in mysql

  4. Door Oracle ondersteunde versiesmatrix