2011-07-18 9 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 

または、名前欄に重複がある場合は、このようにしてください。

EDIT
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'の行がたくさんある場合は、3番目のクエリが必要です。 – Jacob

+0

@Crays:すべての答えを試してみると、あなたは 'yoursum FROM yourtable'という名前の' SELECT(aa + bb + cc)AS 'が必要です。 –

1

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

私自身は、おそらくのいずれかを使用します(あなたが最終的に一つの値だけをしたい場合には)@cularis液の

A少し変更したバージョン集合関数は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

関連する問題