MySql:为每行设置值MAX()+ 1

时间:2012-06-27 08:58:02

标签: mysql max

更新:

我有一些带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);

但是这会将相同的值放在所有不是我需要的行上。

1 个答案:

答案 0 :(得分:3)

这应该有效:

UPDATE u_shop
inner join (SELECT @row := MAX(sync_number) FROM u_shop) r
SET sync_number = @row := @row + 1
相关问题