mybatis批量修改操作示例

mybatis批量修改操作示例

# 将 id 为1的年龄改为 80  , name 改为 zsf  , name 改为 张三丰
# 将 id 为2的年龄改为 90 , name 改为 ldl , name 改为 李大伦
UPDATE tb_user 
SET 
 age = CASE WHEN id=1 THEN 80 WHEN id=2 THEN 90 END, 
 NAME = CASE WHEN id=1 THEN 'zsf' WHEN id=2 THEN 'ldl' END, 
 user_name = CASE WHEN id=1 THEN '张三丰' WHEN id=2 THEN '李大伦' END
WHERE id IN ( 1, 2 ) ;
<update id="batchUpdate">
        update tb_user
        <trim prefix="set" suffixOverrides=",">
            <trim prefix="age = CASE" suffix="end,">
                <foreach collection="list" item="i" index="index">
                    <if test="i.age!=null">
                        when id=#{i.id}  then
                        #{i.age}
                    </if>
                </foreach>
            </trim>
            <trim prefix="name = CASE" suffix="end,">
                <foreach collection="list" item="i" index="index">
                    <if test="i.name!=null">
                        when id=#{i.id}  then
                        #{i.name}
                    </if>
                </foreach>
            </trim>
            <trim prefix="user_name = CASE" suffix="end">
                <foreach collection="list" item="i" index="index">
                    <if test="i.userName!=null">
                        when id=#{i.id}  then
                        #{i.userName}
                    </if>
                </foreach>
            </trim>
            <where>
                id in
                <foreach collection="list" item="i" separator="," open="(" close=")">
                    #{i.id}
                </foreach>
            </where>
        </trim>
    </update>

在这里插入图片描述

posted @   IT当时语_青山师  阅读(21)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示