Este é o problema muitas vezes para lidar com dados duplicados na tabela mysql, se você está trabalhando com uma grande quantidade de dados, você pode ter enfrentado esse problema, então neste post eu vou mostrar a consulta MYsql pela qual você pode encontrar dados duplicados e removê-lo. Esta também é a pergunta mais frequente durante a entrevista.
Suponha que temos 25k empresas em nosso banco de dados, e existem algumas empresas duplicadas em seu empresas e você deseja encontrar empresas duplicadas e deseja remover completamente da tabela de empresas, use as consultas abaixo do mysql.
TB_COMPANIES
ID | COMPANY_NAME | ENDEREÇO | CONTACT_PERSON_NAME | EMAILID | TELEFONE |
---|---|---|---|---|---|
1 | HCL LTDA. | NOIDA | XXXXXXX | [email protected] | xxxxxxxxx |
2 | WIPRO | DELI | XXXXXXX | [email protected] | xxxxxxxxx |
3 | HCL LTDA. | NOIDA | XXXXXXX | [email protected] | xxxxxxxxx |
.. | .. | .. | .. | x.. | … |
.. | .. | .. | .. | x.. | … |
.. | .. | .. | .. | x.. | … |
Na tabela acima há registros duplicados da empresa HCL, temos que encontrá-la e removê-la.
Consulta MYSql para encontrar dados duplicados.
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 ) |
Consulta MYSql para excluir dados duplicados.
DELETE C1 FROM TB_COMPANIES C1,TB_COMPANIES C2 WHERE C1.ID < C2.ID AND C1.COMPANY_NAME = C2.COMPANY_NAME |
Acima você viu, Usando a subconsulta do MYsql e o recurso de auto-junção, você pode facilmente escrever uma consulta para encontrar e excluir dados duplicados.