Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rodrigo_porks

Deletando registros duplicados

Recommended Posts

Aê galera,Quero selecionar os emails duplicados de uma tabela e deletar um deles.To tentando isso mas só funciona em parte.Alguém pode me ajudar?// seleciona os emails duplicados - Esse funciona beleza.SELECT * FROM (SELECT DISTINCT(EMAIL), COUNT(EMAIL) AS Qtde FROM TABELA GROUP by EMAIL) TABELA WHERE TABELA.Qtde > 1// apaga os emails duplicados, ou seja, onde a quantidade é maior q 1. - Esse nao ta funcionando.DELETE TABELA WHERE COD IN (SELECT MAX(COD) FROM TABELA GROUP by EMAIL HAVING COUNT(EMAIL)>1)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei essas sentencas na minha base:SELECT * FROM (SELECT DISTINCT(DC01_EMAIL), COUNT(DC01_EMAIL) AS Qtde FROM DC01 GROUP by DC01_EMAIL) DC01 WHERE DC01.Qtde > 1DELETE DC01 WHERE DC01_COD IN (SELECT MAX(DC01_COD) FROM DC01 GROUP by DC01_EMAIL HAVING COUNT(DC01_EMAIL)>1)A resposta foi essa:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE DC01_COD IN (SELECT MAX(DC01_COD) FROM DC01 GROUP by DC01_EMAIL HAVING COU' at line 1QUERY:DELETE DC01 WHERE DC01_COD IN (SELECT MAX(DC01_COD) FROM DC01 GROUP by DC01_EMAIL HAVING COUNT(DC01_EMAIL)>1)

Compartilhar este post


Link para o post
Compartilhar em outros sites

A partir do MySQL versão 4.1, uma cláusula IN() também pode conter uma subquery.

Nem dá pra testar aqui, uso versão antiga. =P

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.