目录
1、问题描述
接口参数传递String类型且使用逗号隔开的多个值作为查询条件时,使用执行打印的sql语句执行结果为多个,但是mybatis确只返回一条数据
2、mybatis查询sql
3、问题分析
sql查询条件 a.id in (#{projectId}) 在使用#{projectId}赋值是mybatis只取到第一个值,其余的被忽略。
因此针对参数为String类型并且包含多个值用逗号隔开的形式需要使用mybatis的foreach语句进行处理,如:
a.id in
<foreach collection="projectId.split(',')" item="pid" separator="," open="(" close=")">
#{pid}
</foreach>