mysql 批量修改,多条件多值的写法

一般的批量修改,都是同一个 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; 提交

 

posted @ 2022-09-28 16:38  雪化山河  阅读(2306)  评论(0)    收藏  举报