一般的批量修改,都是同一个 where 条件,然后批量修改一批同条件的数据,但是有时候会遇到一种需要根据不同条件,批量修改的操作
具体可以大概参考如下写法:
where 修改条件使用 in 查询多条,在 set 里面利用 w 的属性值再做每条数据的绑定
start transaction; -- 开始事务
UPDATE bpm_product_info w
SET w.brand_id = ( SELECT b.id FROM bpm_product_brand_info b WHERE b.brand_name = w.brand_name )
WHERE
w.brand_name IN (
SELECT
q.brand_name
FROM
( SELECT brand_name FROM bpm_product_brand_info WHERE brand_name IN ( SELECT brand_name FROM bpm_product_info WHERE brand_id IS NULL GROUP BY brand_name ) ) q
)
rollback; -- 回滚或者 commit; 提交