我想查找与特定月份和年份组合匹配的记录。
如果我提供了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来达到上述效果。
答案 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>