我试图在我的sql数据库上进行选择,当在代码中检查每个元素时,查询在WHERE clausure中再接收OR name LIKE expression
并且它可以工作,但是当我尝试选择超过23个元素时有效,任何人都知道sql是否有查询的限制大小或其他什么?
查询如下所示:
SELECT * FROM mytable WHERE name LIKE x% OR name LIKE y% OR name LIKE ...
(23X)
我无法将其更改为WHERE name IN (x,y,z)
:(
答案 0 :(得分:0)
这是数据库限制问题的一般答案。是的他们有限制。它们随着RDBMS而变化,但这些是我多年来偶然发现的。
列表只能包含x个元素。它适用于这种语法。
myfield in(1,2,3等)
使用oracle 10,限制为1000.使用sql server,它大概是2500左右。
查询本身只能有这么多字符。这是你原来的问题,虽然看起来这不是你的具体问题,但我已经看到它发生在sql server上。
查询只接受x参数。我用ColdFusion / SQL Server超过了这个,但我不记得限制是什么。