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

MySQL-opdateringskolonne baseret på forrige række (samme kolonne)

Du kan bruge en OPDATERING med en JOIN til en afledt tabel for dette:

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 afledte tabel bruger variabler til at beregne Image værdier af posterne med NULL s.

Demo her



  1. Få alle handlinger fra de sidste tre brugere

  2. Hvordan bruger man en liste som en parameterkilde til SQL-forespørgsler med Vertx JDBC Client?

  3. Har replace into en where-klausul?

  4. Se SQL Server Agent-jobhistorik med Azure Data Studio