仅使用前3个值的数组总数

时间:2013-12-03 17:13:21

标签: php mysql database limit

在一位成员的帮助下,我已经能够将MySQL查询调用的数组的值加在一起。但是,我的代码是将所有值相加。

$top_1st = mysql_fetch_array(mysql_query("SELECT SUM(1ET)/10 AS top_1st 
FROM scoring_data WHERE Competition='$competition' AND Club='$row[Club]' 
AND Team='$row[Team]' ORDER BY 1ET DESC LIMIT 0, 3"));

echo $top_1st[0] ;

我用过

LIMIT 0, 3 

因为我只想从返回的查询中添加最高3个值,但这似乎不起作用。

如果有简单的解决方案,请道歉;新手技能真的受到了考验!

修改

来自@ marc-b的建议(谢谢)让我想到了这一点,但它给了一个空白的回报。

$top_1st = mysql_fetch_array(mysql_query("
SELECT SUM(1ET)/10
FROM (
SELECT 1ET AS top_1st FROM scoring_data WHERE Competition='$competition' AND
Club='$row[Club]' AND Team='$row[Team]' ORDER BY 1ET DESC LIMIT 0, 3 ) "));
echo $top_1st[0] ;

1 个答案:

答案 0 :(得分:1)

您需要先获得前3个值,然后在另一个查询中求和,例如

SELECT SUM(foo)
FROM (
    SELECT whatever AS foo
    FROM ...
    LIMIT 3
)

必须在内部查询中应用限制。否则你将总结为一行,然后无论如何都会落在3行限制范围内。