如果为空,则排除where子句字段?

时间:2014-06-06 11:04:29

标签: mysql

此示例是否有函数:

我在where子句中有3个字段:

where field1 = ? AND field2 = ? AND field3 = ?

有没有办法让它如果值为null,请将其从搜索字段中排除?比如说field1是空的,而不是搜索field1 = empty,你只是从搜索结果中排除field1

1 个答案:

答案 0 :(得分:3)

尝试这种方式:

WHERE (@value1 IS NULL OR field1 = @value1) 
  AND (@value2 IS NULL OR field2 = @value2) 
  AND (@value3 IS NULL OR field3 = @value3)

<强>解释

如果参数@ value1传递为null,则不会搜索field1。

如果您不想在该字段为空时搜索该字段,则可以执行以下操作:

WHERE (field1='' OR field1 = @value1) 
  AND (field2='' OR field2 = @value2) 
  AND (field3='' OR field3 = @value3)