Mybatis 批量更新数据(多字段批量)

废话不多说,直接上代码.
<!--    批量更新指标分数和级别-->
    <update id="updateAll" parameterType="com.futuredata.web.assess.pojo.WordVO">
        update assess_factor_copy set fxjb=case id
        <foreach collection="list" item="item">
            when #{item.id} then #{item.fxjb}
        </foreach>
        end,
        score=case id
        <foreach collection="list" item="item">
            when #{item.id} then #{item.score}
        </foreach>
        end
        where id in
        <foreach collection="list" item="item" index="index" open="(" separator="," close=")">
            #{item.id}
        </foreach>
    </update>

解释下, a= case b when c then d end函数表示,当b=c的时候另a=d 所以配合foreach的循环可以实现批量更新数据

容易遇到的坑这里给大家点出来
1.对于多字段,最后一个end后面不需要带标点符号.
2.最后的where id in ()这个不可以省略掉,原因有两个,一是可以提高效率,二是防List集合不包含的id行数据被覆盖置为NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值