我正在使用NamedParameterJdbcTemboard来运行我的查询。查询如下:
SELECT id, desc FROM tableA WHERE id IN (:custIds);
现在,我调用一个web服务,它返回一个ID列表。因此,我使用NamedParameterJdbcTemplate将ID列表映射到“客户ID”。然而,当ID列表达到1000多个时,我遇到了一个问题。我已经了解到,DB将无法处理包含100或1000个以上数据的IN。
由于我只能接收ID列表,您能否建议除了NamedParameterJdbcTemplate之外,最好使用什么?
在子句中,不能使用超过1000个条目。有以下几种解决方案:
内部查询
来解决此问题。您可以创建一个临时表并在IN
子句中使用它。示例查询:
select id,desc from table_name where id in (select id from temp_table)
或子句分隔的in子句将其拆分为1000个条目
示例查询:
select id,desc from table_name
where
id in (1,2,3,...1000)
or
id in (1001,1002,1003,...2000)
or
id in (2001,2002,...)
或者使用union all(联合所有)而不是上述的或子句,在子句中查询1000个条目
示例查询:
select id,desc from table_name where id in (1,2,3,4,...,1000)
union all
select id,desc from table_name where id in (1001,1002,...2000)
union all
select id,desc from table_name where id in (2001,2002,...)
阅读更多。。请参阅Oracle常见问题解答
问题内容: 我创建了一个包含3列的数据框:zip,lat,lng 我想选择zip = 00650的经纬度值 因此,我尝试使用: 但是它返回ArrayOutOfBound异常,因为它没有任何值。如果我删除where子句,它将运行良好。 有人可以解释我在做什么错吗? 更新: 数据框架构: 前10行是: 问题答案: 正如你可以在你的方案看是类型的,所以你的查询应该是这样的 更新: 如果您正在使用,则可以
我使用该子句捕获项目上发生的所有异常,以自定义其行为。 在测试中,uri“upload.toftp”设置了一个不存在的连接,因此它们抛出了一个异常。测试仅启动上下文并等待消息插入队列“activeMQ:int.sendmail” 当我在Fuse上安装项目时,工作良好,但当我执行一个引发某种类型异常的测试用例时,就不工作了。 这是在激发异常时显示测试用例的日志。
我正在使用spring将批处理记录插入数据库。但我得到了一个错误:java。sql。SQLException:无法在java之间转换。util。ArrayList和JAVA\u对象。你能帮帮我吗?我做错什么了 错误: 如果使用硬编码值: 或者当我只通过一个int时,它就起作用了。 请帮忙:)
问题内容: 我注意到将CSS3 功能用作单位不能在最新版本的Chrome中使用。 在Chrome Developer工具中,带有的规则具有 删除线 ,并在其左侧的黄色三角形中带有感叹号。这表示无法识别该属性或值。 如何使它在现代浏览器中运行?因为它是一个值而不是一个属性,所以供应商前缀在哪里? 更新: 当我说它不起作用时,我的意思是Chrome开发工具在说它无法识别我的用法。我怎么知道它无法识别?
我想执行sqlite查询: in子句中的值需要取自字符串数组: 以下是我的错误日志。 原因:Android。数据库sqlite。SQLiteException:接近“1”:语法错误(代码1):,编译时:从sku所在的books_表中选择book_id、book_code、ISBN、vol_no、brand、sku、title、price、lang、status(单打、5合1系列、儿童图书);在An
当我尝试执行删除时,将设置为