工作生活

【Mybatis】解决Oracle查询处理in条件超过1000条

2019-07-02  本文已影响0人  _情绪疯子
select * from test_table
where 1 = 1 
 <!-- IdList -->
 <if test="IdList != null and IdList.size > 0">
    AND PK_ID IN
    <!-- 处理in的集合超过1000条时Oracle不支持的情况 -->
    <trim suffixOverrides=" OR PK_ID IN()"> <!-- 表示删除最后一个条件 -->
        <foreach collection="IdList" item="Id" index="index" open="(" close=")">
            <if test="index != 0">
                <choose>
                    <when test="index % 1000 == 999">) OR PK_ID IN (</when>
                    <otherwise>,</otherwise>
                </choose>
            </if>
            #{Id}
        </foreach>
    </trim>
 </if>
上一篇下一篇

猜你喜欢

热点阅读