SQL IN逗号分隔参数vs内部查询

时间:2012-07-24 06:26:14

标签: sql performance

我知道SQL IN子句中有1000个项目的限制。 目前,我在选择查询的“IN”子句中使用逗号分隔的项目字符串,我想更改它。

所以,我找到了this,其中指出要使用JOIN或在IN内传递查询。

哪一个应该是首选?

编辑(另一个问题):

在“IN”子句中传递查询并在“IN”子句中传递逗号分隔参数有什么区别?

2 个答案:

答案 0 :(得分:1)

数据库优化器将以相同的方式执行这两种变体。你可以使用看起来更好的那个。 :)

答案 1 :(得分:0)

当您在“In子句”中放入查询时,数据库需要首先计算此查询,然后根据结果计算“主查询”。 如果将值放在“In子句”中,则数据库dost需要计算其他查询。

关于在in子句中加入查询的问题,数据库会将它们优化为相同。