0

更新しました:

次のように、sync_numbers を持つテーブルがあります。

---------------------
id    | sync_number  
---------------------
   1  |     1
   2  |     1
   3  |     1
   4  |     1

ここで、sync_number を最大値 + 1 に設定したいのですが、次のように行ごとにこれを行います。

---------------------
id    | sync_number  
---------------------
   1  |     2
   2  |     3
   3  |     4
   4  |     5

これどうやってするの?

私はこのようなことをしようとしました:

UPDATE u_shop SET sync_number = ((SELECT selected_value FROM (SELECT MAX(sync_number) AS selected_value FROM u_shop) AS sub_selected_value) + 1);

しかし、これはすべての行に同じ値を配置しますが、これは必要ではありません。

4

1 に答える 1

3

これは機能するはずです:

UPDATE u_shop
inner join (SELECT @row := MAX(sync_number) FROM u_shop) r
SET sync_number = @row := @row + 1
于 2012-06-27T09:01:47.657 に答える