sql >> Database >  >> RDS >> Mysql

MySQL-updatekolom op basis van vorige rij (dezelfde kolom)

U kunt een UPDATE . gebruiken met een JOIN hiervoor naar een afgeleide tabel:

UPDATE Items AS i1
JOIN (
  SELECT ID, @n := @n + 1 AS Image
  FROM Items
  CROSS JOIN (SELECT @n := (SELECT MAX(Image) FROM Items)) AS v
  WHERE Image IS NULL
  ORDER BY ID
) AS i2 ON i1.ID = i2.ID
SET i1.Image = i2.Image;

De afgeleide tabel gebruikt variabelen om de Image . te berekenen waarden van de records met NULL v.

Demo hier



  1. Probleem met databasetabelontwerp

  2. Zoeken naar databaseobjecten en tabelgegevens in SQL Server

  3. Hoe kunnen we twee databases met identieke schema's samenvoegen?

  4. Krijg alle POST-gegevens en stuur een e-mail