遇有多种情况,仅在另一种情况下工作

时间:2018-11-04 15:28:53

标签: mysql case case-when

当我发现以下两个条件之间的冲突时,我感到震惊。

我尝试了很多方法并进行了检查,但是后来发现,只有删除了第一个条件后,WHEN才有效。

CASE
    WHEN
        (@cid != '0' OR @cid != '') AND @ftm != '0' AND (@sid != '' OR @sid != '0')
    THEN 
        cls.id = @cid AND fee_tm.id = @ftm AND sec.id = @sid
    WHEN
        (@cid != '0' OR @cid != '') AND @ftm != '0' AND (@sid = '0') AND
    THEN
        cls.id = @cid AND fee_tm.id = @ftm
END

此处@cid cls.id 相关,@ftm fee_time.id 相关,@sid sec相关.id

要更加清晰和具体

value `0` means All:

@cid = 0 (All classes),
@sid = 0 (All Sections),
@ftm = 0 (All fee_tm)

value '' (empty) means nothing is selected.
value != 0 and value != '' means user input.

第一个WHEN条件适用于:

如果@cid(class.id),@ftm(fee_time.id),@sid(sec.id),则它们都不是空的也不是全部

第二个WHEN条件适用于:

如果@cid(class.id),@ftm(fee_time.id),则这两个都不是空的,也不是全部(与第一个条件匹配)-但区别在于:如果{{1 }}(秒ID)为0(全部)。

我试图将两个条件合并为一个条件,但无法调整。但是应该可以,不是吗?

我的 MYSQL代码 @sid条款如下

WHERE

0 个答案:

没有答案