<if>:判断的条件是否成立,通常用于where条件中
<if test="applyType != null and applyType != ''">
AND a.apply_type = #{applyType}
</if>
<foreach>:遍历传入的列表数据,通常用与in连用
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
最后联合使用:
<select id="selectPesonData" resultType="com.sanzhisoft.mybatis.disabled.assist.equipment.entity.AssistEquApplyInfo">
select
year(apply_time) as yearStr,
case
when apply_reason is null
then ''
else apply_reason end as apply_reason
from t_assist_equ_apply_info
where status >=6 AND user_id = #{userId}
<if test="list.size() > 0" >
and year(apply_time) in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</if>
GROUP BY year(apply_time)
ORDER BY yearStr
</select>