Query to find and remove duplicate data from MYSql table
This is the very often problem to handle duplicate data in mysql table, If you are working on huge amount of data, You might have face this problem, So in this post I am going to show you MYsql query by which you can find duplicate data and remove it. This is also the most ask-able question during the time of interview.
Suppose we have a 25k companies in our database, And there is some duplicate companies exist in your companies table and you want find duplicate companies and want to completely remove from your companies table then use below mysql queries.
TB_COMPANIES
| ID | COMPANY_NAME | ADDRESS | CONTACT_PERSON_NAME | EMAILID | PHONENO |
|---|---|---|---|---|---|
| 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 Above table there is duplicate records of company HCL we have to find and remove it.
MYSql query to find duplicate data.
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 to delete duplicate data.
DELETE C1
FROM TB_COMPANIES C1,TB_COMPANIES C2
WHERE C1.ID < C2.ID
AND C1.COMPANY_NAME = C2.COMPANY_NAME
Above you saw, Using MYsql sub query and self-join feature you can easily write query to find and delete duplicate data.