1、使用union把多个参数生成一张参数表
SELECT * FROM(
SELECT '1' A FROM DUAL UNION
SELECT '2' A FROM DUAL UNION
SELECT '3' A FROM DUAL UNION
SELECT '4' A FROM DUAL UNION
SELECT '5' A FROM DUAL UNION
SELECT '6' A FROM DUAL ) PARAM;
我使用的是mybatis循环生成参数表
<foreach collection="partsNoList" item="partsNo" separator="union">
SELECT #{partsNo,jdbcType=VARCHAR} PARTS_NO FROM DUAL
</foreach>
2、使用表 inner join 或者 EXISTS 等,就可以解决oracle sql in参数多、数据量大时sql查询效率过低问题