>我有一个查询如下:
SELECT * FROM mytable WHERE USER_ID = ?
然后我使用准备好的语句设置USER_ID
。有没有办法使用相同的查询和预准备语句来检索数据而无需任何过滤?也许像下面的东西?
SELECT * FROM mytable WHERE USER_ID = *
我想使用相同的查询和预准备语句设置方法来获取等效于SELECT * FROM mytable
我经历了 sqlANY
并ALL
但它们似乎不能满足我的问题。
如果我理解正确,您可以使用这样的条件。
将参数设置为默认值或检查@USER_ID
,在本示例中我将默认值设置为NULL
。如果要获取所有数据,可以@USER_ID
设置为NULL
,否则按userID
查询
DECLARE @USER_ID INT = NULL;
SELECT *
FROM mytable
WHERE (@USER_ID IS NULL) OR USER_ID = @USER_ID
这是来自 sql 服务器的示例
SQLfiddle