在单个查询的每次更新中将列更新为最大列。

时间:2014-05-13 10:18:26

标签: php mysql sql sql-update

我想更新一个值为0到该列最大值的列(在单个查询中)。

有很多记录的值为0。

我这样做:

UPDATE table SET field = (SELECT MAX(field) + 1) WHERE field = 0;

但它会将每条记录更新为相同值。 我们可以获得每行更新的最大值吗?

1 个答案:

答案 0 :(得分:2)

您似乎希望递增从下一个可能值开始的值。这是一种方法:

update table t cross join
       (select @rn := max(field) from table) var
    set t.field = (@rn := @rn + 1)
    where field = 0;