mysql根据查询条件去修改另一张表

时间:2022-01-20 21:55:43

mysql根据查询条件去修改另一张表

需求1:查询条件是表A 修改的是表A (单表)

需求2:查询条件是表A 修改的是表B 把表A中的值复制给表B (多表)

在mysql中是不允许先select  后update的,所以这里给出的方案是创建中间表

具体看如下代码:

update 表B set status = 0 where fid =
(
select a.fid from
(
select * from 表B a where EXISTS
(
select * from 表B
)
) a where a.status = 1 order by a.fid LIMIT 1
);

以上是单表操作,如果是多表就在需求2

多表的修改:

update 表A ew,表B sb set ew.accountName = sb.operator_name
where ew.shop_id = sb.id
以上是吧表表B中operate_name值复制给表A中accountName