Mysql
 sql >> Base de données >  >> RDS >> Mysql

Supprimer les lignes en double avec sql

Essayez de sélectionner d'abord les doublons, puis supprimez-les

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
)

J'espère que ça aide !!!

MODIFIÉ :en fonction du commentaire, si vous souhaitez conserver un enregistrement , vous pouvez faire une jointure et conserver la valeur la plus basse

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)

Assurez-vous de faire une sauvegarde avant d'exécuter la requête ci-dessus...