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

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

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

【问题讨论】:

  • 您使用的是哪个 SQL 数据库服务器?毫无疑问,它在每个实现之间有所不同。
  • MySQL 5.1.36 为帮助好友干杯

标签: sql database mysql5


【解决方案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 语句中的几千个数字是否太多并且会使服务器停止:)
            • 您可以先尝试将该数据插入到临时表中。
            猜你喜欢
            • 2019-09-03
            • 2016-01-20
            • 1970-01-01
            • 1970-01-01
            • 2016-07-30
            • 1970-01-01
            • 1970-01-01
            • 2015-01-04
            • 2017-08-24
            相关资源
            最近更新 更多