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

MySQLで最新の重複IDを検索

    さて、あなたはあなたの質問に答えるようなものです。 max(id)が必要なようです :

    SELECT email, COUNT(email) AS occurences, max(id)
    FROM wineries
    GROUP BY email
    HAVING (COUNT(email) > 1);
    

    ステートメントを使用して他を削除できます。 joinで削除 最初にテーブル名をリストしてからfromを指定する必要があるトリッキーな構文があります 結合のある句:

    delete wineries
                from wineries join
                (select email, max(id) as maxid
                 from wineries
                 group by email
                 having count(*) > 1
                ) we
                on we.email = wineries.email and
                   wineries.id < we.maxid;
    

    またはこれをexistsとして記述します 条項:

    delete from wineries
        where exists (select 1
                      from (select email, max(id) as maxid
                            from wineries
                            group by email
                           ) we
                      where we.email = wineries.email and wineries.id < we.maxid
                     )
    


    1. 大規模なIMDBモデルを作成しようとしたときの失敗のトラブルシューティング

    2. Djangoは子行を追加または更新できません:外部キー制約が失敗します

    3. OracleのTRANSLATE(…USING)関数

    4. MariaDBでのUPDATEXML()のしくみ