我在'where'子句中编写了一个带有很多'或'的SQL查询:
即
"SELECT * FROM myTable WHERE col1='a' or col1='b' or col1='c'...etc"
我正在尝试通过vb.net运行查询,但我不断收到“查询太复杂”的错误消息。
我猜我已经达到了一定的上限。任何人都知道解决这个问题的方法,而不仅仅是将其分解为多个查询?
答案 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)
您可以在 -
中使用INSELECT * FROM myTable WHERE col1 IN ('a','b','c','d');
答案 4 :(得分:0)
许多人已经表示你应该使用IN运算符,但是当它与常量一起使用时,我相信优化器只是将它转换为OR运算符。
相反,您可以使用常量加载临时表,然后使用该表的IN运算符。