我具有以下条件(m.idAgent =代理人或代理人为空)。如果我将null传递给agent参数,它将简单地返回我所有的agent。 但是如何在 MYSQL 中实现相同的目标。
即,如果我传递null,则应该忽略where条件的那部分,而应只考虑其他非null的条件。
答案 0 :(得分:0)
您可以按以下方式使用COALESCE
:
WHERE COALESCE(agent, m.idAgent) = m.idAgent
这应该起作用,因为当agent
为NULL
时,它将被替换为比较的RHS,因此将始终通过。我认为以下内容实际上就是您的代码:
WHERE COALESCE(?, m.idAgent) = m.idAgent
?
是占位符,用于在语句中绑定值。