如何在IN条件下使用超过1000个值?

时间:2013-03-05 13:49:48

标签: sql oracle in-clause

我正在使用java。我在对象级别有2000个键值,并且必须从DB中获取该值的相应记录。我发现了临时表的建议 here,但不会影响效果吗?如何在单个镜头中插入这些值,以便减少数据库调用次数?

3 个答案:

答案 0 :(得分:6)

您可以使用

col1 in (1,2...)  or col1 in (1001, 1002...)

答案 1 :(得分:1)

我会说临时表是要走的路。它会影响性能吗?是的,它可能比仅硬编码所有值稍慢。但你无法拥有一切 - 如果你不想硬编码所有的值,你将不得不接受性能的小幅下降。我认为权衡是令人满意的,特别是因为影响可能很小。

答案 2 :(得分:1)

对于单个in子句 - 你不能。见讨论here