Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta para encontrar e remover dados duplicados da tabela MYSql


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.




Se você gostou deste post, não se esqueça de assinar meu caderno público para mais coisas úteis