mysql - 如果某些条件为真,则求和

标签 mysql

我正在尝试构建一个查询,如果某个参数是 放。例如:

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/

相关文章:

mysql - SQL 查询、有效日期和连接 : how to make it work?

php - 如何解决php/mysql插入失败的问题?

php - 查询从多个表中获取值

mysql - 当 SET NAMES 与表的字符集不匹配时会发生什么?

javascript - 如果在 Node js 中使用 mysql 发生错误,如何在 Node js 中回滚函数

mysql - 左连接并获取连接表上的总记录

php - PHP MySQL动态查询错误

mysql - MySQL 条件左连接

php - PDO异常 : SQLSTATE[HY000] [2006] MySQL server has gone away

php - INSERT 查询不允许我将数据发布到数据库