update table set num = (select num+1 from table where id=1) where id=1
运行以上SQL语句,返回错误信息:“You can’t specify target table ‘表名’ for update in FROM clause”
意思是在同一语句中不能先select出同一表中的某些值,再update这个表
解决方式:
在select的结果后加一层中间过渡
update table set num = (
select * from (select num+1 from table where id=1) t
) where id=1