我想做的是:
UPDATE table SET field = MAX(field) + 1 WHERE id IN (1, 3, 5, 6, 8);
在我看来,该语句的语义首先是数据库将关闭,并为我确定field全部中最大的价值是什么table。然后,它将对该值加1,并将结果值分配给field具有id1、3、5、6和8 的行的列。似乎足够简单…
field
table
id
但是,当我尝试运行该查询时,MySQL对此kes之以鼻,说:
ERROR 1111 (HY000): Invalid use of group function
要获得我想要的结果,您必须使用什么秘诀?
问候,维克
尝试
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)