我有一个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。感谢
答案 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并仍然使用绑定参数。