在mybatis中的foreach中同时迭代两个列表

时间:2017-07-20 16:45:29

标签: foreach mybatis

我想查找与特定月份和年份组合匹配的记录。

如果我提供了3个月的数量,那么查询应该过去三个月。

从表中选择* 其中(月份= 8月份和年份= 2017年)或(月份= 7月份和年份= 2017年)或(月份= 6月份和年份= 2017年)

<select id="getAll" parameterType="list" resultType="test">
Select * from table where      
<foreach item="month"  index="key" collection="months" separator=" OR " open="(" close=")">
            month  = #{month} AND year = #{years[ (${key}) ]}
        </foreach>
</select>

我有月份列表{8月,7月,6月}和年份列表{2017,2017,2017}。

如何使用foreb of mybatis来达到上述效果。

1 个答案:

答案 0 :(得分:0)

我无法重现该示例,但是,可以为每个元素实现嵌套'?

<select id="getOred" parameterType="list" resultType="test">
Select * from table where
     <foreach item="month" index="mkey" collection="months" open="(" separator=" OR " close=")">
        <foreach item="year" index="ykey" collection="years" open="" separator="" close="">
            <if test="mkey == ykey">
                month = #{month} AND year = #{year}
            </if>
        </foreach>
    </foreach>