SQL查询where子句太长

时间:2011-02-25 11:51:14

标签: sql vb.net ms-access

我在'where'子句中编写了一个带有很多'或'的SQL查询:

"SELECT * FROM myTable WHERE col1='a' or col1='b' or col1='c'...etc"

我正在尝试通过vb.net运行查询,但我不断收到“查询太复杂”的错误消息。

我猜我已经达到了一定的上限。任何人都知道解决这个问题的方法,而不仅仅是将其分解为多个查询?

5 个答案:

答案 0 :(得分:6)

如果您查询的那么简单,那么使用

就不会更好
SELECT * FROM myTable WHERE col1 in ('a','b','c')

但这有助于发布实际查询,以便我们提供准确的答案

答案 1 :(得分:6)

如何使用IN operator呢?

SELECT Field1,Field2 从表1 Field1 IN('Val1','Val2',....)

答案 2 :(得分:5)

您可以使用SQL IN运算符,而不是具有多个OR条件。

答案 3 :(得分:1)

您可以在 -

中使用IN
SELECT * FROM myTable WHERE col1 IN ('a','b','c','d');

答案 4 :(得分:0)

许多人已经表示你应该使用IN运算符,但是当它与常量一起使用时,我相信优化器只是将它转换为OR运算符。

相反,您可以使用常量加载临时表,然后使用该表的IN运算符。