<update id="updateUserbath" parameterType="java.util.List">
update mp_user
<trim prefix="set" suffixOverrides=",">
<trim prefix="name=case" suffix="end,">
<foreach collection="list" item="item" index="index">
when id = #{item.id} then #{item.name}
</foreach>
</trim>
<trim prefix="age=case" suffix="end,">
<foreach collection="list" item="item" index="index">
when id = #{item.id} then #{item.age}
</foreach>
</trim>
</trim>
where id in
<foreach collection="list" index="index" item="item"
separator="," open="(" close=")">
#{item.id,jdbcType=INTEGER}
</foreach>
</update>
例子1:
update mp_user set
name=case when id = 1 then 'xiaoming'
when id = 2 then 'xiaohong' end,
age=case when id = 1 then 19
when id = 2 then 20 end
where id in ( 1 , 2 );
例子2:
update score set
score = case when id=1 then 2 when id=2 then 5 end ,
update_time = case when id = 1 then SYSDATE() when id = 2 then SYSDATE() end
where id in (1,2)
未经允许不得转载:
红吉他 »
JAVA »
Mybatis批量更新多个字段