Mysql
 sql >> Database >  >> RDS >> Mysql

Come aggiornare più duplicati con valori diversi sulla stessa tabella?

Non sono sicuro che sia molto efficiente, ma funziona con una sola query :

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);