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

Colonna di aggiornamento MySQL basata sulla riga precedente (stessa colonna)

Puoi usare un UPDATE con un JOIN a una tabella derivata per questo:

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 tabella derivata utilizza variabili per calcolare l'Image valori dei record con NULL s.

Dimostrazione qui