Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie aktualisiere ich mehrere Duplikate mit unterschiedlichen Werten in derselben Tabelle?

Ich bin mir nicht sicher, ob dies sehr effizient ist, aber es funktioniert in nur einer Abfrage :

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