mybatis in 查询超过1000条解决办法
·
<select id="getByIds" parameterType="java.util.List" resultMap="CMap"
resultType="Chg">
SELECT *
FROM TB_CHG
where (ID IN
<trim suffixOverrides=" OR ID IN()">
<foreach collection="list" item="Id" index="index" open="(" close=")">
<if test="index != 0">
<choose>
<when test="index % 1000 == 999">) OR ID IN(</when>
<otherwise>,</otherwise>
</choose>
</if>
#{odId}
</foreach>
</trim>)
</select>
标签使用解释:
1.<trim>标签suffixOverrides:删除后缀匹配的内容,以上例子中后缀如果是 "OR ID IN()"与suffixOverrides的属性值匹配,则去掉 "OR ID IN()"
2.index 集合迭代的位置从0开始,<if test="index != 0">为了解决IN里面的多出的','问题
标签的解释:
collection 循环的集合对象
item 集合中每一个元素或者该集合的对象
index 下标,从0开始
open 开始符号
separator 每次进行迭代分隔符
close 结束符号
prefix 添加前缀
prefixOverrides 删除前缀
suffix 添加后缀
suffixOverrides 删除后缀
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)