SQL IN 子句中可以放入超过 1000 个项目吗?我们的 Oracle 数据库一直遇到无法处理它的问题。
如果是,我们如何在 SQL IN 子句中放入超过 1000 个项目?
如果没有,我还能做什么?
最佳答案
还有另一种解决方法,在任何其他答案(或其他已回答的问题)中都没有提到:
任何像 x in (1,2,3)
这样的 in 语句都可以重写为 (1,x) in ((1,1), (1,2), ( 1,3))
并且 1000 个元素的限制将不再适用。我已经使用 x
上的索引进行了测试,并且解释计划仍然报告 Oracle 正在使用访问谓词和范围扫描。
关于SQL IN 子句 1000 项限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4722220/