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

Columna de actualización de MySQL basada en la fila anterior (misma columna)

Puedes usar un UPDATE con un JOIN a una tabla derivada para esto:

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;

La tabla derivada usa variables para calcular la Image valores de los registros que tienen NULL s.

Demostración aquí