有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java大型IN子句

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

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

感谢任何指点


共 (2) 个答案

  1. # 1 楼答案

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

    CSV转换为Rows{a1}

  2. # 2 楼答案

    最好有一个表,甚至是一个临时表,其中包含要与Tab1连接的in中的ID。这样可以避免由于in中的内容太多而可能出现的错误,甚至在性能方面也可能更好