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

Excluindo linhas duplicadas com sql


Tente selecionar as duplicatas primeiro, exclua-as
DELETE FROM usa_city WHERE city_id IN
(
SELECT city_id FROM usa_city
GROUP BY city_name, id_state
HAVING count(city_id) > 1
)

Espero que ajude!!!

MODIFICADO:Com base no comentário, se você quiser manter um registro , você pode fazer uma junção e manter o valor mais baixo
DELETE c1 FROM usa_city c1, usa_city c2 WHERE c1.id < c2.id AND 
(c1.city_name= c2.city_name AND c1.id_state = c2.id_state)

Certifique-se de fazer um backup antes de executar a consulta acima...