具有2个条件的MySQL案例

时间:2015-09-09 07:55:25

标签: php mysql

我有一个简单的案例,有人可以帮忙吗? 我在这里有两个表COMPLAINT和HANDLING现在我想从那些带有2个条件的表中选择,其中HANDLING表为null,而来自COMPLAINT的日期是从sysdate超过5天。 如果我使用这样的SQL代码,那将是错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   当B.CID为空时(&SELECT SYSDATE FROM DUAL)附近' CASE   A. SUBMIT_DATE> 5 TH'在第2行

SELECT * FROM complaint a LEFT JOIN handling b ON a.cid=b.cid
CASE 
WHEN B.CID IS NULL AND (SELECT SYSDATE FROM DUAL)- A.`SUBMIT_DATE` > 5 
THEN 'OVER'
ELSE 'CLEAR'
END

2 个答案:

答案 0 :(得分:1)

您添加的案例陈述位于错误的位置,您无法在加入条款中使用它。

但是如果你想用case选择一些东西那么它必须在select子句中作为

select
*, 
case 
 when b.cid is null and datediff(curdate(),a.SUBMIT_DATE) > 5 then 'OVER'
 else 'CLEAR'
end as `some_col_name`
from complaint a LEFT JOIN handling b ON a.cid=b.cid

答案 1 :(得分:0)

Case语句必须在select中,而不是在join之后,如下所示:

SELECT *,
CASE 
WHEN B.CID IS NULL AND datediff(curdate(), a.SUBMIT_DATE) > 5 
THEN 'OVER'
ELSE 'CLEAR'
END AS 'YOUR_COL'
FROM complaint a LEFT JOIN handling b ON a.cid=b.cid