多个where条件,每个条件对应的更新值不同,需要mysql批量更新
UPDATE
test_table
SET
test_target = test_id CASE
WHEN "123" THEN "456"
WHEN "789" THEN "101"
END
WHERE
test_id in ['123','789']
但是在程序中,直接写常量的情况太少,大多数都需要变量遍历
下面是mybatis的应用:
UPDATE
table
SET
target = CASE id
<foreach collection="items" item="item" close=" END" >
WHEN #{item.id} THEN #{item.target}
</foreach>
WHERE
apply_id IN
<foreach collection="items" item="item" open="(" close=")" separator="," >
#{item.id}
</foreach>