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

Hvordan opdaterer man flere dubletter med forskellige værdier på den samme tabel?

Ikke sikker på, at dette er meget effektivt, men det virker med kun én forespørgsel :

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. Er det bedre at oprette et indeks, før du fylder en tabel med data, eller efter at dataene er på plads?

  2. Er der et præstationshit ved hjælp af decimaldatatyper (MySQL / Postgres)

  3. Indsæt i en tabelbase på sammenføjningsresultat fra 2 andre borde

  4. optimizer_search_depth i Google Cloud SQL