在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中适当上面一个查询?
在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中适当上面一个查询?
你提供的MySQL语句看起来是正确的。另一种方法是使用IF
SELECT col1, col2, IF((condition1) AND (condition2), 1, 0), col4 from table1;
如需更多帮助,您可以参考:MySQL Reference Guide
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或不包含。
您完全按照您所示的方式书写它。你运行过吗? – zerkms 2015-04-02 04:24:26
是的,我已经运行它,它说'THEN 1 ELSE 0'附近的语法错误。 – 2015-04-02 04:57:20
这是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