MySQL中的动态Where子句

时间:2015-09-29 02:39:56

标签: mysql sql

是否可以在存储过程中构建动态where子句,以便在参数为空时,选择表中的所有项?但是,如果您有参数,则选择条件为真的项目?

1 个答案:

答案 0 :(得分:2)

这是诀窍......你可以创建一个字符串查询 对于你的select命令,然后通过条件语句对它进行操作..请参阅下面的示例..希望你能在你的工作中应用逻辑。

    -- 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)