云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

MySQL中的You can't specify target table for update in FROM clause报错

jxf315 2024-12-28 13:42:54 教程文章 38 ℃

MySQL中的“You can't specify target table for update in FROM clause(不能在FROM子句中指定更新的目标表)”错误是说不能先select出同一表中的某些值,再在同一语句中update这个表,猜想是为了避免语句陷入循环,目前查找到的解决方法就是在select子句外面再套一层子句,利用中间表让MySql不能探测出这个问题(也可能是查中间表语句只先执行一次,就可避免陷入循环),正确语句格式如下:

update user set name=:name,password=:password,phone=:phone,user_active=:userActive,multiple_login=:multipleLogin,we_chat_active=:weChatActive,we_chat=:weChat where id=:id and abbreviation=:abbreviation and (:phone='' or :phone not in (select a.phone from (select phone from user where phone=:phone) a))

记录分享,方便避坑[笑]

最近发表
标签列表