如何使用参数进行过滤但保留NULL?

时间:2009-07-22 17:13:47

标签: mysql parameters null

我希望能够传入一个参数列表,并忽略那些为NULL的参数。这样查询实际上假装过滤器不存在并忽略它。我的问题是我正在过滤 的列接受NULL,但如果我使用这样的字符,则会删除所有NULL字段。

WHERE column = Case WHEN NULL column ELSE @parameter END

2 个答案:

答案 0 :(得分:1)

稍微好一点的选择是测试:

(@param IS NULL OR column = @param)

这利用了SQL内置的短路,除非它应该对列进行评估。

答案 1 :(得分:0)

WHERE之类的东西(@parameter IS NOT NULL和column = @parameter)AND ...按要求重复......