在一位同事的帮助下,我已经能够将 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] ;
最佳答案
您需要先获取前 3 个值,然后在另一个查询中求和,例如
SELECT SUM(foo)
FROM (
SELECT whatever AS foo
FROM ...
LIMIT 3
)
必须在内部查询中应用限制。否则,您将总结为一行,无论如何都会落在 3 行限制内。
关于php - 仅使用前 3 个值的数组的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357488/