sql >> データベース >  >> RDS >> Mysql

SQLで重複行を削除する

    最初に重複を選択して、削除してください

    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
    )
    

    お役に立てば幸いです!!!

    変更:コメントに基づいて、1つのレコードを保持したい場合 、参加して最低値を維持することができます

    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)
    

    上記のクエリを実行する前に、必ずバックアップを作成してください...



    1. mySQL-非正規化する必要がありますか?

    2. OracleのTAN()関数

    3. Bcryptハッシュパスワードをデータベースに保存するためにどの列タイプ/長さを使用する必要がありますか?

    4. 日付を10分間隔に丸める