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 @   雪化山河  阅读(2275)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示