sql“in”语句可以处理的最大变量是多少

Posted

技术标签:

【中文标题】sql“in”语句可以处理的最大变量是多少【英文标题】:What's is the maximum variables the sql "in" statement can handle 【发布时间】:2011-03-06 03:52:26 【问题描述】:

如上所述 例如 WHERE In(var 1,var 2,var 3, ..., var 5609,)

在减慢机器速度之前有什么限制吗?

【问题讨论】:

您使用的是哪个 SQL 数据库服务器?毫无疑问,它在每个实现之间有所不同。 mysql 5.1.36 为帮助好友干杯 【参考方案1】:

我想说,如果你不得不问,那么你可能做错了什么。 :)

【讨论】:

【参考方案2】:

MS SQL Server 在 2000 年左右窒息,MS SQL Compact 没有限制(或者我还没有达到,超过 2500)。

注意:这些是查询参数的限制。

【讨论】:

【参考方案3】:

我不认为 MySQL 中 IN 子句列表中的值数量有限制,这与 1000 Oracle 限制不同。不过,如果您有顾虑,我会通过编写某种循环来构建一个非常长的“IN”语句来验证这一点。另外,someone else asked this question and there wasn't a known limit.

【讨论】:

【参考方案4】:

在 Oracle(仅在 10g 中验证)中为 1000。

ORA-01795: maximum number of expressions in a list is 1000

【讨论】:

【参考方案5】:

Oracle 9i Maximum number of expressions 在一个列表中是 1000;

【讨论】:

【参考方案6】:

对于“限制”,您是指实现中的限制,还是会减慢查询速度的东西?如果是后者,最好的答案是自己测试。

【讨论】:

抱歉含糊不清。我只是在问 in 语句中的几千个数字是否太多并且会使服务器停止:) 您可以先尝试将该数据插入到临时表中。

以上是关于sql“in”语句可以处理的最大变量是多少的主要内容,如果未能解决你的问题,请参考以下文章

my batis单个变量长度最大多少

“sql”语句中“in”怎么用?

为啥sql语句使用IN的效率不好?

Netezza 中可以传递 IN 子句的最大参数

如何调整oracle中的sql语句输入的最大长度

用sql语句求本季度比上一个季度多多少天