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>