背景
这天有个需求,要求价格区间查询要多选,把我干懵了
最终代码
<if test="params.mileage != null and params.mileage !=''">
and
<foreach collection="params.mileage.split(',')" item="items" open="(" separator="or" close=")">
<if test=" items.split('-')[0] != null and items.split('-')[0] !='' ">
mileage >= #{items.split('-')[0]}
</if>
<if test=" items.split('-')[1] != null and items.split('-')[1] !='' ">
and mileage <= #{items.split('-')[1]}
</if>
</foreach>
</if>
思想
主要是我们这里要用到循环,然后因为是区间查询所以每个区间之间应该用or进行分割;这样就完成了区间多选查询