在MySQL中的一行CASE…WHEN语句中使用多个条件

在MySQL中的一行CASE…WHEN语句中使用多个条件,mysql,sql,Mysql,Sql,MySQL中的CASE…WHEN语句中有没有任何方法可以在一行CASE…WHEN语句中使用多个条件 例如,我想编写一个类似于以下内容的查询: SELECT col1, col2, CASE WHEN ((condition1) AND (condition2)) THEN 1 ELSE 0 END as col3, col4 FROM table1 如何在MySQL中恰当地编写类似于上述查询的查询?您提供的MySQL语句看起来不错。另一种选择是使用IF SELECT col1, co

MySQL中的CASE…WHEN语句中有没有任何方法可以在一行CASE…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;
有关更多帮助,请参阅:

说明: 如果(你的条件“真结果”、“假结果”) 如果您的条件为真,它将从“真结果”中选择您设置的值,如果条件为假,它将从“假结果”中选择
示例:
if(sum(columnname)=0,1,0)
检查特定列是否包含所有值为0

你写的和你展示的一模一样。你运行了吗?是的,我运行了它,它在“THEN 1 ELSE 0”附近显示语法错误。这是MySQL的有效语法,应该可以工作,我只是用以下方法验证:选择col1,col2,CASE WHEN((col1>0)和(col2>0))然后1 ELSE 0结束为col3,col4 FROM(选择1作为col1,2作为col2,4作为col4)foo
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