Php MySQL:获取MySQL结果最后一行的总计

Php MySQL:获取MySQL结果最后一行的总计,php,mysql,sql,Php,Mysql,Sql,例如,我有这样一个表: product | quantity | something ------------------------------- abc | 5 | 2 xzy | 5 | 2 asd | 10 | 2 SELECT product, sum(quantity), sum(something) FROM tableName GROUP BY product WITH ROLLUP 当我需要所有记录时,我

例如,我有这样一个表:

product | quantity | something
-------------------------------
 abc    |   5      |  2
 xzy    |   5      |  2
 asd    |   10     |  2
SELECT product, sum(quantity), sum(something)
FROM tableName
GROUP BY product WITH ROLLUP
当我需要所有记录时,我会这样做,并得到3个结果:

select * from tableName 
但我想得到第四行的数量(50)和一些东西(6)。在sql查询中是否可能,或者我必须在查询执行后循环我的结果以获得总计?如果可能的话,我想在查询中这样做

(SELECT product, 
        quantity, 
        something 
 FROM   tablename) 
UNION 
(SELECT "all"          AS product, 
        SUM(quantity)  AS quantity, 
        SUM(something) AS something 
 FROM   tablename) 
这是一个有效的查询。它将根据需要在结果末尾添加第四行

$q="select sum(quantity), sum(something) from tableName"; $q=“从tableName中选择总和(数量)、总和(某物)”;
这不是解决这个问题的最佳方法,但应该做到这一点

select product, quantity, something from tableName
union 
select 'sum', sum(quantity), sum(something) from tableName
你可以

SELECT Product, Quantity, Something 
FROM TABLENAME

UNION

SELECT 'ALL', SUM(Quantity),SUM(Something) 
FROM TABLENAME

但是,这不会在表中添加行。无论如何,这可能不是一个好主意。

您可以使用rollup生成总计,但必须将其更改为聚合函数,如下所示:

product | quantity | something
-------------------------------
 abc    |   5      |  2
 xzy    |   5      |  2
 asd    |   10     |  2
SELECT product, sum(quantity), sum(something)
FROM tableName
GROUP BY product WITH ROLLUP

尽量避免联合查询在连接和案例查询的情况下,它可能会增加执行时间。正如@Chris Strickland所说的,使用ROLLUP。

我认为您需要使用
SUM()
语句再次运行您的请求(请参阅)。这应该是公认的答案,因为它是最有效、最短的方法,而且非常简单