解决MySQL报错1093
一、首先,我们模拟MySQL1093错误
假设我们有这样一个需求,我们需要把 id = 8 这一条数据的nick_name设置为id = 4 的nick_name
执行后报错信息如下
二、MySQL报错信息为(1093)
update t_user set nick_name = (select nick_name from t_user where id = 4 ) where id = 8
> 1093 - You can't specify target table 't_user' for update in FROM clause
> 时间: 0s
> //译文: 不能在 FROM 子句中指定目标表 ‘t_user’ 进行更新。
三、解决方案
在表中间加个过渡
修改后的SQL如下:
update t_user set nick_name = (select nick_name from (select nick_name from t_user where id = 4 ) as a ) where id = 8;
执行之后修改成功。
希望对你有一点点小帮助吧。。。。
#MySQL错误码1093