Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como atualizar várias duplicatas com valores diferentes na mesma tabela?


Não tenho certeza se isso é muito eficiente, mas funciona em apenas uma 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);