<select id=" parameterType="java.lang.String" resultType="java.lang.Integer">
select count(1) total from user where deleted = 0
and id in (#{uids})
</select>
你传Sring类型的话,参数就是 "100000,100001,100002,100003,100004" , 你把这个作为参数直接传到sql解析是
l_type_id IN('100000,100001,100002,100003,100004') 把所有的值都包在一个字符串里面了所以数据库里面该字段值匹配不上, 可以把String参数分割装数据 mybatis 里面用
标签遍历传参。
因为你传的是一个整串,通过占位符#{},你传的什么就是解析的什么,对于sql来说这个条件就是 一个字符串,并不是每个单个的参数值,所以值包在一个字符串中,自然就匹配不到值了。
<select id=" parameterType="list" resultType="java.lang.Integer">
select count(1) total from user where deleted = 0
and id in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。