如果条件参数为空,则mysql选择查询,然后忽略该参数

时间:2019-08-12 10:48:35

标签: mysql

我具有以下条件(m.idAgent =代理人或代理人为空)。如果我将null传递给agent参数,它将简单地返回我所有的agent。 但是如何在 MYSQL 中实现相同的目标。

即,如果我传递null,则应该忽略where条件的那部分,而应只考虑其他非null的条件。

1 个答案:

答案 0 :(得分:0)

您可以按以下方式使用COALESCE

WHERE COALESCE(agent, m.idAgent) = m.idAgent

这应该起作用,因为当agentNULL时,它将被替换为比较的RHS,因此将始终通过。我认为以下内容实际上就是您的代码:

WHERE COALESCE(?, m.idAgent) = m.idAgent

?是占位符,用于在语句中绑定值。