sql >> Databasteknik >  >> RDS >> Mysql

MySQL-uppdateringskolumn baserad på föregående rad (samma kolumn)

Du kan använda en UPDATE med en JOIN till en härledd tabell för detta:

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;

Den härledda tabellen använder variabler för att beräkna Image värden för posterna som har NULL s.

Demo här



  1. mysqli bindningsvariabler

  2. Bör procedurer och/eller funktioner i paketet DBMS_STANDARD användas i PL/SQL-kod?

  3. Konvertera pandas kolumner till PostgreSQL lista?

  4. Beräknar den totala mängden utrustning för ett datumintervall