SQL参数化查询,这里还可以传"all"?

SQL parameterized query, where you can also pass "all"?

很难找到关于此的任何信息,但是否可以将 "all" 或“*”之类的值传递给参数化查询的 ?,以便获得所有信息结果:

AND st.SomeColumn = ?

在哪里?会是 RETURN 所有比赛吗?因此,理论上您可以传递任何可能的单个匹配项或检索所有匹配项而无需一些字符串连接恶作剧(我知道这是完全可能的,并且是我的计划 B)。

不,您需要将其构建到查询逻辑中。一种简单的方法是(如果列不包含 NULL 值)将参数作为 NULL 传递并执行:

 st.SomeColumn = COALESCE(?, st.SomeColumn)

否则:

 (st.SomeColumn = ? OR (? IS NULL))

这需要两次传递参数 -- 这就是命名参数很方便的原因。