MySQL通过子查询更新

18-12-06 09:36 1139 0 1

一般情况下可能会直接上来这么写

update sqd_a set amount = amount * 0.1 where id in (select id from sqd_b where is_dividend = 1 and get_time < 1);

但是会直接报错 [1093] You can't specify target table 'sqd_a' for update in FROM clause

正确的写法是这样的

update sqd_a as  a,(select id from sqd_b where is_dividend = 1 and get_time < 1) as b set a.amount = a.amount * 0.1 where a.id = b.id;
做自己喜欢做的事。
Up骚年
Up骚年 站长 @ 十七度 创建者 17 声望
all or nothing, now or never.
1 人点赞
salted_fish
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论