如何通过降序排列前五列总和?

时间:2015-02-18 15:59:39

标签: php sql mysqli

我有一张这样的桌子:

---------------------------------------
| S No | item     | Col1      | Col2  |
| ------------------------------------|
| 1    | carrot   | 111       | 2     |
| 2    | broccoli | 222       | 3     |
| 3    | spinach  | 333       | 2     |
| 4    | swiss    | 444       | 3     |
| 5    | cheddar  | 5555      | 5     |
| 6    | cheddar  | 6666      | 6     |
| 7    | onion    | 7777      | 3     |

Col1,Col2,Coln等列有很多列,包含所有整数值。我想获取所有列的总和并获得前5列的名称,其名称和总和值作为查询的响应。我可以用前5个记录做到这一点,但发现很难用列。我正在为这样的行做这件事:

$q1 = mysqli_query($con, "SELECT `File Name`, `Kudos` FROM `{$_SESSION['username']}` ORDER BY `Kudos` DESC LIMIT 5");

while($row = mysqli_fetch_array($q1)) {
    $myCols[] = $row;
} 
print_r($myCols); // Works fine

print_r给了我:

Array
(
    [0] => Array
        (
            [0] => AAAA
            [File Name] => AAAA
            [1] => 343
            [Kudos] => 343
        )

    [1] => Array
        (
            [0] => Test File Again
            [File Name] => Test File Again
            [1] => 45
            [Kudos] => 45
        )

    [2] => Array
        (
            [0] => TEST FILE
            [File Name] => TEST FILE
            [1] => 3
            [Kudos] => 3
        )

)

看起来不错。 对于具有整列最大总和值的列,我该如何相同?  有谁在那里? 谢谢!

1 个答案:

答案 0 :(得分:0)

只需添加它们并在order by

中使用它们
SELECT `File Name`, (col1 + col2 + col3 . . . ) as totalsum
FROM `{$_SESSION['username']}
ORDER BY totalsum DESC
LIMIT 5;