我想知道是否可以编写这样的查询:
PHP变量做比较: $column2 = A; $column3 = null;
SELECT * FROM table1
WHERE col1 = 1
IF(col2 IS NOT NULL)
col2 = $column2
AND
IF(col3 IS NOT NULL)
col3 = $column3
总体思路是将对象数组与 MySQL 表中定义的动态过滤器进行匹配。但我只想比较不为空的列。
任何人都可以帮助或指导我找到更好的方法吗? 谢谢
最佳答案
我认为这可能是正确的
SELECT * FROM table1
WHERE col1 = 1
AND
IFNULL(col2, $column2)=$column2
AND
IFNULL(col3, $column3)=$column3;
但我会使用 php 代码创建 where 子句来动态创建 SQL 语句
关于mysql - 如何在 WHERE 子句中编写带有 IF 的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53638393/