sql >> データベース >  >> RDS >> Mysql

前の行に基づくMySQL更新列(同じ列)

    UPDATEを使用できます JOINを使用 このための派生テーブルへ:

    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;
    

    派生テーブルは、Imageを計算するために変数を使用します NULLを持つレコードの値 s。

    デモはこちら



    1. 繰り返し番号が5を超えるレコードを削除する

    2. MySQL:相互に関連付けられている2つのテーブルから最新のメッセージを取得します

    3. PHPを使用したMSSQL接続

    4. postgres関係のALTERTYPEのエラーは存在しません