2015-04-02 139 views
0

在CASE中的单行内使用多个条件的方式... MySQL中的WHEN语句有什么方法吗?在CASE ... WHEN语句中使用多个条件... MySQL中的WHEN语句

举例来说,我想写类似以下的查询:

SELECT col1, col2, 
CASE 
    WHEN ((condition1) AND (condition2)) THEN 1 ELSE 0 
END as col3, 
col4 
FROM table1 

如何我写的类似于MySQL中适当上面一个查询?

+6

您完全按照您所示的方式书写它。你运行过吗? – zerkms 2015-04-02 04:24:26

+0

是的,我已经运行它,它说'THEN 1 ELSE 0'附近的语法错误。 – 2015-04-02 04:57:20

+0

这是MySQL的有效语法,应该工作,我刚刚验证它:SELECT col1,col2, CASE WHEN((col1> 0)AND(col2> 0))THEN 1 ELSE 0 END as col3, col4 FROM(选择1作为col1,2作为col2,4作为col4)foo – 2015-04-02 05:14:31

回答

1

你提供的MySQL语句看起来是正确的。另一种方法是使用IF

SELECT col1, col2, IF((condition1) AND (condition2), 1, 0), col4 from table1; 

如需更多帮助,您可以参考:MySQL Reference Guide

1
SELECT col1, col2, 
CASE 
    WHEN (if(your_condition , 'true_Result' , 'False_result') AND if(your_condition , 'true_Result' , 'False_result')) THEN 1 ELSE 0 
END as col3, 
col4 
FROM table1 

说明: 如果(your_condition, 'true_Result', 'False_result') 如果您的条件为真,它会在'true_result'中选择你的值,如果条件为假,它会从'false_Result'中选择 例如:if(sum(columnname)=0 , 1 , 0)检查某个特定列是否包含所有值为0或不包含。