MySQL中的动态Where子句
是否可以在存储过程中构建动态where子句,以便在参数为空时选择表中的所有项?但是,如果您确实有一个参数,您可以选择条件为真的项目?这里是技巧。。。您可以创建一个字符串查询 ,然后通过条件语句对其进行操作。。见下面的示例。。希望你能在工作中运用逻辑MySQL中的动态Where子句,mysql,sql,Mysql,Sql,是否可以在存储过程中构建动态where子句,以便在参数为空时选择表中的所有项?但是,如果您确实有一个参数,您可以选择条件为真的项目?这里是技巧。。。您可以创建一个字符串查询 ,然后通过条件语句对其进行操作。。见下面的示例。。希望你能在工作中运用逻辑 -- Put a default value `NULL` to your parameter first CREATE TABLE TableNameHere ( @ParameterName VARCHAR(
-- 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)
WHERE(@parameter为NULL或col=@parameter)
您可以动态执行,也可以使用一个简单的WHERE
子句:WHERE(@id为NULL或id=@id)
。如果我有一个名为test的过程,并且我想选择all,我会调用test(NULL)吗?如果我调用test(),它会说参数数不正确