我正在尝试构建一个查询,如果某个参数是 放。例如:
SELECT SUM(IF(<condition>,field,field)) AS total_value
...工作正常。
但我在 IF() 中有多个条件,例如:
SELECT SUM(IF(<condition> <condition>,field,field)) AS total_value
..这是行不通的,你能知道什么是正确的查询吗?
更新
对不起错误的查询,正确的查询是
我当前的查询看起来像这样: SELECT SUM(IF(condition1,field,field)) AS total_value 哪个工作正常。
但是我在 IF() 中有不止一个条件,比如 SELECT SUM(IF(condition1 condition2,field,field)) AS total_value 这是行不通的,你能知道什么是正确的查询吗?
最佳答案
查看 Case 语句:
Select Sum( Case When column = test Then column2 Else column3 End )
...
如果你有多个条件,你仍然可以使用 case:
Select Sum( Case
When column1 = 'Foo' Then column2
When column1 = 'Bar' Then column3
When column1 = 'Gamma' Then column2 + column3
Else column3 End )
From ...
在这种情况下,如果 column1 不为空且不等于 'Foo',那么它将转到下一个 When 语句。如果该测试不正确,它将进入下一个,依此类推。
关于mysql - 如果某些条件为真,则求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3024267/