我在这里看到了很多关于在 IN 子句中使用元组的问题。我的情况和其他人有点不同。IN 子句中元组的一般用法如下所示
Select * from MY_TABLE
where (id,name,date) IN ((1,'new','10-JUL-13'),(2, 'old','09-JUN-13'))
考虑到上述查询,我的要求是检索具有 id 和 name 值以及特定范围内的日期的记录。让我们说
effectiveDate <= date <= termDate
我正在使用ORACLE数据库和MyBatis ORM。我将数据作为对象列表获取,因此当我使用 mybatis 时,我可以使用foreach/for循环来填充元组,但是当我想对来自对象的这些值之一使用条件时。
当我将 Mybatis 用于从列表中读取的一个值时,where 子句如下
<where>
and (id,name) IN
<foreach item="object" collection="data" open="(" separator=","close=")">
(#{object.id},#{object.name})
</foreach>
</where>
我还必须在循环中包含条件。
等待专家建议。提前致谢。