1.SQL
xml
<select id="getList" resultType="com.xxx.xxx.front.response.ConvertList">
select
*
from
store_product
where
1=1
<if test="cateIdList != null">
and cate_id in
<foreach collection="cateIdList" item="cateIdList" index="index" open="(" separator="," close=")">
#{cateIdList}
</foreach>
</if>
</select>
2.最终执行的sql拼接如下
and cate_id in ('753','753')
3.解决方案
in ('753','753') 这样的sql在数据库执行之后是查不到任何数据的,即便cate_id本身的确是字符串也是一样。in()不能比较字符,如果要比较字符还是得使用like或者or。
所以只能将入参改成 Integer 最终拼接为 in (753,753) 才能查出数据