2011-07-18 125 views
0

我想總結下面這個腳本中的所有值,但不知道如何去做,我搜索了網絡,發現array_sum()但不知道在哪裏使用它.. 。MySQL獲得價值並總結他們

while($row = mysql_fetch_array($result)) 
    { 
    $a = $row['aa']; 
    $b = $row['bb']; 
    $c = $row['cc']; 
    } 
上面的腳本

,所有的變量有1或0的值,我可以手動通過使用$ A + $ b + $ C加入他們,但如果列表變得更長它會採取一些時間。有沒有更快的方式,以便我可以加總一切?

說明表的

ID NAME AA BB CC 
    1 YOU 1 0 1 
    2 ME  1 1 1 

所以我想那是什麼「YOU」將有2個,而價值「ME」將有3

+0

是的,使用MySQL的SUM()' – Shef

回答

8
SELECT (aa+bb+cc) AS yoursum FROM yourtable 

值。按照您的評論,我想你想這樣的事情:

SELECT SUM(aa), SUM(bb), SUM(cc) AS yoursum FROM yourtable 

或者,如果名稱列可以有重複。

SELECT name, SUM(aa+bb+cc) AS yoursum 
FROM yourtable 
GROUP BY name 
+0

謝謝,但從w3schools的定義是SELECT SUM(column_name)FROM table_name(所以我有點困惑)。我已經更新了我的問題。 – Crays

+0

然後你需要第一個查詢。如果有很多行'Name = Me',那麼你需要第三個查詢。 – Jacob

+0

@Crays:嘗試所有的答案,你會發現你需要'SELECT(aa + bb + cc)作爲yoursum從yourtum'之一。 –

1

編輯:

稍微修改的@cularis解決方案版本(如果你想在年底只有一個值):

SELECT (SUM(aa) + SUM(bb) + SUM(cc)) AS yoursum FROM yourtable 

我自己可能會使用的一個集合函數構建到MySQL中(最有可能是SUM())。您可以在這裏閱讀更多這些功能:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

+0

我想他想要計算同一行的值? – Jacob

+0

啊...那麼我的解決方案是錯誤的。對不起,在這種情況下造成的混亂。儘管如此,我不禁注意到在給定的代碼示例中存在一個while循環,其中有多行被提取(可能是關聯數組),因此,我認爲線程所有者請求了多行聚合。 – dbm

+0

如果沒有錯,sum()只能按列計算嗎?如果我是排隊的話會怎麼樣?這意味着我有這樣的東西 ID姓名AA BB CC – Crays