是否可以在存储过程中构建动态 where 子句,以便如果参数为空,则选择表中的所有项目?但是,如果您确实有参数,您会选择条件为真的项目吗?
最佳答案
这里是技巧...您可以创建一个字符串查询 对于您的选择命令,然后通过条件语句对其进行操作..请参阅下面的示例..希望您可以将逻辑应用到您的工作中。
-- Put a default value `NULL` to your parameter first
CREATE TABLE TableNameHere
(
@ParameterName VARCHAR(MAX) = NULL
)
DECLARE @SQLQuery VARCHAR(MAX)
--Initialize SQL statement first
--It will return true always , therefor it will display all data
SET @SQLQuery = 'SELECT * FROM TableNameHere WHERE 1 = 1'
-- If parameter has a value then do the where condition inside the block
IF @ParameterName IS NOT NULL
BEGIN
SET @SQLQuery = @SQLQuery + ' AND ColumnNameHere = ''' + @ParameterName + ''''
END
EXEC(@SQLQuery)
关于mysql - MySQL 中的动态Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32834822/