如何使用 where 子句获取 mysql 中选定行的总和?

Posted

技术标签:

【中文标题】如何使用 where 子句获取 mysql 中选定行的总和?【英文标题】:How to take sum of selected rows in mysql using where clause? 【发布时间】:2016-09-12 23:47:12 【问题描述】:

这是我的表,我想要一个选定产品的总和:

select sum(`price`) from add_product;

此查询对所有行都有效,但我想使用这样的 where 子句:

select sum(`price`) from add_product where product_id=1233 and product_id=1234;

如何做到这一点?

【问题讨论】:

您在使用该查询时遇到了什么问题? 我觉得你需要select sum(price) from add_product where product_id in (1233, 1234); 【参考方案1】:

使用BETWEENAND

对于 2 个'product_id'

SELECT SUM('price') FROM 'add_product' WHERE 'product_id' BETWEEN 1233 AND 1234

对于 3 个'product_id',按升序排列:

SELECT SUM('price') FROM 'add_product' WHERE 'product_id' BETWEEN 1233 AND 1235 ORDER BY 'product_id' ASC

【讨论】:

【参考方案2】:

首先, 纠正您的疑问,

您的 productID 之间不能有 AND, 使用 OR 代替

    SELECT 
            SUM(`price`) 
    FROM 
            add_product 
    WHERE
            product_id=1233 OR product_id=1234; 

你也可以使用 IN 子句,

http://www.tutorialspoint.com/mysql/mysql-in-clause.htm

或者,如果您需要按产品求和,则使用 GROUP BY,

http://www.tutorialspoint.com/mysql/mysql-group-by-clause.htm

    SELECT 
            product_id, SUM(`price`) totprice
    FROM 
            add_product 
    WHERE
            product_id IN (1233,1234)
    GROUP BY
            product_id;

【讨论】:

【参考方案3】:

您可以将 in 用于多个值,而不是使用 OR。

select sum(`price`) from add_product where product_id in (1233,1234);

【讨论】:

以上是关于如何使用 where 子句获取 mysql 中选定行的总和?的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL SELECT:如何获取一个额外的列,指示是不是满足 WHERE 子句中的第一个或第二个条件?

MySQL LIKE 子句

如何在 WHERE 子句(MySQL)中使用 VIEW?

MySQL:使用带有 WHERE 子句的 JOINS 从一个表中获取所有记录并从另一个表中获取可用记录

MySQL

MySQL LIKE 子句