Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abfrage, um doppelte Daten aus der MYSql-Tabelle zu finden und zu entfernen

Dies ist das sehr häufige Problem beim Umgang mit doppelten Daten in MySQL-Tabellen. Wenn Sie mit großen Datenmengen arbeiten, sind Sie möglicherweise mit diesem Problem konfrontiert. In diesem Beitrag werde ich Ihnen also eine MYsql-Abfrage zeigen, mit der Sie doppelte Daten finden können und entfernen Sie es. Dies ist auch die am häufigsten gestellte Frage während des Vorstellungsgesprächs.



Angenommen, wir haben 25.000 Unternehmen in unserer Datenbank, und es gibt einige doppelte Unternehmen in Ihrer Firmentabelle und Sie möchten doppelte Firmen finden und vollständig aus Ihrer Firmentabelle entfernen, dann verwenden Sie die folgenden MySQL-Abfragen.

TB_UNTERNEHMEN

ID COMPANY_NAME ADRESSE CONTACT_PERSON_NAME E-MAIL-ID TELEFON
1 HCL LTD. NOIDA XXXXXXX [email protected] xxxxxxxx
2 WIPRO DELHI XXXXXXX [email protected] xxxxxxxx
3 HCL LTD. NOIDA XXXXXXX [email protected] xxxxxxxx
.. .. .. .. x..
.. .. .. .. x..
.. .. .. .. x..

In der obigen Tabelle gibt es doppelte Einträge der Firma HCL, die wir finden und entfernen müssen.

MYSql-Abfrage, um doppelte Daten zu finden.

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-Abfrage zum Löschen doppelter Daten.

DELETE C1 
FROM TB_COMPANIES C1,TB_COMPANIES C2 
WHERE C1.ID < C2.ID 
AND C1.COMPANY_NAME = C2.COMPANY_NAME

Oben haben Sie gesehen, dass Sie mit der MYsql-Unterabfrage und der Self-Join-Funktion ganz einfach eine Abfrage schreiben können, um doppelte Daten zu finden und zu löschen.



Wenn dir dieser Beitrag gefällt, vergiss bitte nicht, mein öffentliches Notizbuch für weitere nützliche Dinge zu abonnieren