mysql遇到You can’t specify target table ‘***’ for update in FROM clause

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章