mybatis中怎么通过两个条件删除多条记录

<delete id="deleteList" parameterType="list">
delete
FROM editing_data
WHERE
<foreach item="item" index="index" collection="list">
id = #{item.id}
AND task_key = #{item.taskKey}
</foreach>
</delete>
要删除多条记录,每条记录是id和taskKey两个条件才能决定的。
上面的写法会报错。对mybatis语法不是很熟悉,求正确写法。

不要给我说在程序里用循环删除,这个已经做了,需要的不是这个。
自己解决了。
delete
FROM editing_data
WHERE
<foreach item="item" index="index" collection="list" separator="or">
(id = #{item.id}
AND task_key =
#{item.taskKey})
</foreach>

问题改为对多条记录update应该怎么写 谢谢~

mybatis中多条件删除例子如下:
<delete id="delMultiByIds2" parameterType="java.util.List">
delete from tb_duty where
<foreach collection="list" item="item" index="index" separator="or">
( dscd=#{item.dscd},
and unit_id=#{item.unitId},
and year=#{item.year},
and month=#{item.month},
and flag=#{item.flag} )
</foreach>
</delete>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-22

解决!(有问题得到解决,希望大家都能分享出来,一起做个快乐、肯分享的程序猿。)

针对Oracle数据库,Mybatis多条件批量删除的最新解决方法:

第2个回答  2015-08-07
where (id,task_key) in

<foreach item="item" index="index" collection="list" separator="," open="(" close=")">
(#{item.id},#{item.taskKey})
</foreach>

先试下吧
第3个回答  2018-05-22