如何在WHERE子句中使用IF编写查询?

时间:2018-12-05 18:15:24

标签: mysql

我想知道是否可以编写这样的查询:

PHP变量做比较:     $ column2 = A;     $ column3 = null;

gizmos = gizmos.Where(x => x.ColorTags.Contains(filterColors));

总体思路是将对象数组与MySQL表中定义的动态过滤器进行匹配。但我只想比较不为空的列。

有人可以帮助或指导我采取更好的方法吗? 谢谢

2 个答案:

答案 0 :(得分:1)

我认为这可能是对的

SELECT * FROM table1 
WHERE col1 = 1
AND
IFNULL(col2, $column2)=$column2
AND 
IFNULL(col3, $column3)=$column3;

但是我会用php代码创建where子句以动态创建SQL语句

答案 1 :(得分:0)

尝试是否有帮助

SELECT * FROM table1 
WHERE col1 = 1
AND col2 = IIF(col2 IS NOT NULL,$column2,col2)
AND col3 = IIF(col3 IS NOT NULL,$column3,col3)