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

同じテーブルで異なる値を持つ複数の重複を更新するにはどうすればよいですか?

    これが非常に効率的かどうかはわかりませんが、1つのクエリで機能します

    UPDATE t
    JOIN (
      SELECT MAX(t.id) AS maxid, lat, lon
      FROM t
      JOIN t AS duplicates
      USING (lat, lon)
      GROUP BY lat, lon
      HAVING COUNT(*) > 1
    ) AS maxima USING (lat, lon)
    SET flag = IF(id = maxid, 1, 2);
    


    1. Postgres配列に値が存在するかどうかを確認します

    2. MySQL UPDATE:T-SQL開発者向けのトップ5のヒント

    3. MySQL-結合付きのGROUP_CONCAT

    4. PostgreSQLシステムカタログを理解して読む