Mysql:sql select query如果condition参数为null则忽略该参数

时间:2017-10-25 20:40:42

标签: mysql

我有一个Mysql查询

SELECT *
FROM EMPLOYEE
WHERE DEPARTMENT = ?
    AND DESIGNATION = ?
    AND DISTRICT = ?
    AND CIRCLE = ?

很可能参数(?)中的任何1或2或3可以为空或为空。

  

那么我该怎么做才能让空参数完全Ignore   在where子句和only search for the non-empty parameter中   表

我怎样才能实现这个目标

请帮忙.. 查询必须兼容mysql。感谢

1 个答案:

答案 0 :(得分:2)

您可以添加两次输入参数并进行如下查询:

SELECT *
FROM EMPLOYEE
WHERE (DEPARTMENT = ? OR ? IS NULL)
    AND (DESIGNATION = ? OR ? IS NULL)
    AND (DISTRICT = ? OR ? IS NULL)
    AND (CIRCLE = ? OR ? IS NULL)

所以在第一个和第二个'?'你绑定相同的值。

或者(并且可以说更好),您可以动态构建SQL,如果不适用,则省略where子句的某些部分。您可以连接字符串以获取基本SQL并仍然使用绑定参数。