MySQL : sql select query if condition parameter is null then ignore the parameter

标签 mysql

我有一个Mysql查询

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

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

so what should I do so that the empty parameters are totally Ignore in the where clause and only search for the non-empty parameter in the table.

我怎样才能做到这一点

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

最佳答案

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

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

那么在第一个和第二个 '?'你绑定(bind)相同的值。

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

关于MySQL : sql select query if condition parameter is null then ignore the parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46941690/

相关文章:

php - INNER JOIN 总是返回 1 行(即使它是空的)?

mysql - 在存储数组的列中搜索

mysql - 如何将多语言MySQL表导出到Excel而不出现乱码(例如à¹à¸à¸™à¸™à)?

MySQL 用其他表中的名称替换 ID

mysql - 为什么变量 _count 总是返回 -1?

java - 我如何从android中的应用程序发送阿拉伯语单词并在阿拉伯语的mysql数据库上恢复?

mysql - 功能未实现查询 : select * from alarm_status Parameters: []

mysql - 这个领域到底是什么?

php - mysql inner join query where id is obtained from $_GET ['id' ]

php - 如何让mysql生成的帖子独立出来