一尘不染

mysql查询将字段更新为max(field)+ 1

mysql

我想做的是:

UPDATE table SET field = MAX(field) + 1 WHERE id IN (1, 3, 5, 6, 8);

在我看来,该语句的语义首先是数据库将关闭,并为我确定field全部中最大的价值是什么table。然后,它将对该值加1,并将结果值分配给field具有id1、3、5、6和8
的行的列。似乎足够简单…

但是,当我尝试运行该查询时,MySQL对此kes之以鼻,说:

ERROR 1111 (HY000): Invalid use of group function

要获得我想要的结果,您必须使用什么秘诀?

问候,维克


阅读 1084

收藏
2020-05-17

共1个答案

一尘不染

尝试

UPDATE TABLE set field = ((SELECT selected_value FROM (SELECT MAX(field) AS selected_value FROM table) AS sub_selected_value) + 1) WHERE id in (1,3,5,6,8)
2020-05-17