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

MySQL-Aktualisierungsspalte basierend auf vorheriger Zeile (gleiche Spalte)

Sie können ein UPDATE verwenden mit einem JOIN zu einer abgeleiteten Tabelle dafür:

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;

Die abgeleitete Tabelle verwendet Variablen, um das Image zu berechnen Werte der Datensätze mit NULL s.

Demo hier