大IN条款

时间:2015-03-23 13:25:21

标签: java sql batch-processing

我有一个Java服务,它创建一个预准备语句,执行然后使用resultSet。但是,我有一个潜在的场景,传递给select的id列表可能在1到10000+之间。我看过批准准备好的声明。但是,我真正想做的是将完整的set或id发送到sql并让它分解查询并返回一个完整的结果集。

select col1 from tab1 where id IN (?,?,?...);

任何指示赞赏!

2 个答案:

答案 0 :(得分:1)

Comma separated values转换为Rows,然后将distinct行插入带有主表的temp tablejoin临时表中。

CSV转换为Rows check here

答案 1 :(得分:0)

最好有一个表,甚至是一个临时表,其中包含您在in中加入Tab1的ID。这可以避免由于IN中的太多事情而导致的任何可能的错误,并且即使在性能方面也可能更好。