sql嵌套语句报错

数据库用的是MySQL,想拼接一个SQL查询语句,语句中问号的地方是参数,但是自己在测试SQL语句的时候,把那3个参数写死更新数据也没起作用,正确的SQL应该怎么写?

数据表的内容如下:
图片描述

SQL语句如下:

update t_account set balance=(
select balance-?
from t_account
where account=?)
where account=?;

报错如下:
[SQL] update t_account set balance=(
select balance-200
from t_account
where account=12345)
where account = 12345;
[Err] 1093 - You can't specify target table 't_account' for update in FROM clause

阅读 1.7k
1 个回答

可以更简单点

update t_account set balance=balance-?
where account=?;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进