我正在使用以下代码:
SELECT * FROM table WHERE Col IN (123,123,222,....)
但是,如果在IN子句中放置了超过3000个数字,则SQL会引发错误。
IN
有谁知道是否有尺寸限制或类似限制?!
根据所使用的数据库引擎的不同,指令的长度可能会有限制。
SQL Server有一个很大的限制:
http://msdn.microsoft.com/en- us/library/ms143432.aspx
ORACLE在另一端有一个非常容易达到的限制。
因此,对于大的IN子句,最好创建一个临时表,插入值并执行JOIN。它也可以更快地工作。