需要一种方法,根据指定或未指定的条件,在Where子句中生成MySQL查询因子或排除条件

时间:2017-03-21 00:15:22

标签: mysql

我使用Chartio创建仪表板。我可以使用Chartio的变量来填充MySQL查询的各个部分,然后抽出一个很酷的图表。我有一种情况,我需要一个查询,可以有3个变量X,Y,Z的任意组合,如下所示。

SELECT SUM(LENGTH) as LENGTH,
       SUM(ISNULL(LENGTH_INSPECTED,0))/SUM(LENGTH) as PERCENT_INSPECTED,
       TYPE
FROM 
ACTIVE_TRANSPORTATION A
LEFT JOIN INSPECTION B 
    ON A.ATN_ID = B.ATN_ID
GROUP BY TYPE

我需要能够让查询“确定”如果我只给它X,则忽略Y和Z作为条件。或者,如果我给它X和Y,忽略Z.我可以给它任意组合这三个。 “忽略”我的意思是不要将它用作WHERE子句中的条件。

这是否可以使用OR? REGEXP?通配符? ...?我不是很精通MySQL。提前致谢

1 个答案:

答案 0 :(得分:1)

如果在用户离开字段时将变量设置为空字符串,则可以写:

SELECT orderid
FROM orders 
WHERE (X = '' OR productcode = X) AND
    (Y = '' OR status = Y) AND
    (Z = '' OR date = Z);