我在使用许多WHERE
条件时遇到了麻烦,因为我确实需要在单个语句中组合 8 Where
个条件。
我当前的SQL:
SELECT *
FROM Table
WHERE ID = ?
我想要这样的东西:
SELECT *
FROM Table
WHERE ID = ?, WHERE COL2 = ?, WHERE COL3 = ?, ... WHERE COL8 = ?
我该如何实现?我被卡住了。
答案 0 :(得分:2)
在同一SQL查询级别上不能有多个WHERE
。您需要使用AND
:
SELECT * FROM Table
WHERE ID = ?
AND COL2 = ?
AND COL3 = ?
-- ...
AND COL8 = ?
或使用嵌套:
SELECT *
FROM (SELECT *
FROM Table
WHERE ID = ?) s
WHERE COL1 = ?
...
这实际上是一个有趣的问题。例如KQL(Kusto查询语言)允许链接多个WHERE
:
Tab
| where col = ?
| where col2 = ?
示例:
let t1 = datatable(key:long, value:string)
[1, "a",
2, "b",
3, "c"];
t1
| where key in (1,2)
| where value == "b"
答案 1 :(得分:0)
我们不允许在同一条语句中使用倍数where条件。为此,您需要使用和进行处理。 例如:
SELECT * FROM Table
where col='a' and col2='c' and col'3'
这将很好地工作。