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