一般的批量修改,都是同一个 where 条件,然后批量修改一批同条件的数据,但是有时候会遇到一种需要根据不同条件,批量修改的操作
具体可以大概参考如下写法:
(1)where 修改条件使用 in 查询多条,在 set 里面利用 w 的属性值再做每条数据的绑定
(2)这里的开启事务,只是方便测试用而已,可以不写
start transaction; -- 开始事务
update
wx_company_info w
set
w.product_code = (
select
b.product_code
from
wx_product b
where
b.is_top = 1
and
b.product_name = w.product_name
)
where
w.product_name in (
select
q.product_name
from
(
select
c.product_name
from
wx_company_info c
where
c.product_name is not null
and
c.product_name <> ''
) q
)
rollback; -- 回滚或者 commit; 提交