2017-08-28 73 views
-1

我做了一个MySQL数据库。该领域是:ID:NAME:QUANTITY组合项目

我有,例如:

ID:NAME:QUANTITY 
1: APPLE: 3 
1: APPLE: 4 
2: BANANA: 1 
2: BANANA: 2 

而是具有这种输出的,我想获得:

APPLE 7 
BANANA 3 

我已经尝试了很多事情,但我一次又一次失败。你们有解决方案吗?

我的代码是:

public function getList($user_id, $recept_id) { 

    $return = array(); 
    $sql = "select * from list"; 

    $result = mysqli_query($this->link, $sql); 
    while ($row = mysqli_fetch_assoc($result)) { 
    $return[] = $row; 
    } 
    return($return); 
+4

聚合函数'SUM'用'GROUP BY' –

+0

'选择名称,金额(数量)由name' –

回答

3

简单地总结您的查询的数量。

SELECT `NAME`, SUM(`QUANTITY`) as QUANTITY FROM list GROUP BY `NAME`; 

为您的代码:

$return = array(); 
    $sql = "SELECT `NAME`, SUM(`QUANTITY`) as QUANTITY FROM list GROUP BY `NAME`"; 

    $result = mysqli_query($this->link, $sql); 
    while ($row = mysqli_fetch_assoc($result)) { 
    $return[] = $row; 
    } 
    return($return); 
+0

对不起,我不认为。 我应该在哪里添加这段代码?在PHP代码中,或在MySQL的某个地方? – Robbert

+0

您需要用上面的查询替换当前的查询。如果您需要进一步的帮助,请随时将生成当前数组的代码添加到问题中。 @Robbert – baao

+0

我加了代码! – Robbert

-2

编辑总和,而不是数量。

使用SUM功能,这样的事情应该工作

SELECT NAME,SUM(QUANTITY) as QUANTITY FROM list GROUP BY NAME ORDER BY QUANTITY DESC; 
+1

不是从表组CNT' count'but'sum' –

+1

不是'count(*)'和'sum(*)' – baao

+0

'sum'。但只是为了场而不是通配符。 –