sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo actualizar múltiples duplicados con diferentes valores en la misma tabla?

No estoy seguro de que esto sea muy eficiente, pero funciona en una sola consulta :

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