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 回答