sql >> Database >  >> RDS >> Mysql

Dubbele rijen verwijderen met sql

Probeer eerst de duplicaten te selecteren, en verwijder ze dan

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
)

Ik hoop dat het helpt!!!

GEWIJZIGD:op basis van de opmerking, als je één record wilt behouden , je kunt een join maken en de laagste waarde behouden

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)

Zorg ervoor dat u een back-up maakt voordat u de bovenstaande query uitvoert...



  1. Welke vaardigheden en kennis hebben databaseontwerpers nodig?

  2. Herhaal de rijen van een tweede tabel om de resultatenset te retourneren

  3. Audit van gegevenswijzigingen uitvoeren met behulp van een tijdelijke tabel

  4. Dynamisch kolommen genereren in PostgreSQL