我想更新一个值为0到该列最大值的列(在单个查询中)。
有很多记录的值为0。
我这样做:
UPDATE table SET field = (SELECT MAX(field) + 1) WHERE field = 0;
但它会将每条记录更新为相同值。 我们可以获得每行更新的最大值吗?
答案 0 :(得分:2)
您似乎希望递增从下一个可能值开始的值。这是一种方法:
update table t cross join
(select @rn := max(field) from table) var
set t.field = (@rn := @rn + 1)
where field = 0;