This问题让我很好奇。
正确答案演示了如何使用MySQL语法在数据库中添加特定范围的值并返回结果。 在日期范围内检索结果并在PHP中计算总数会更好吗?或者应该在适用的地方使用数据库吗?显然,在这个问题中给出的例子,除非我们谈论成千上万的订单,否则这并不重要,但是为了论证......
答案 0 :(得分:5)
出于多种原因,应该在数据库上处理简单的计算,特别是对于聚合类型的场景:
使用PHP
之类的代码只有当您拥有数据库工具无法轻松处理的非常复杂的计算或业务逻辑时,或者使用数据库无法有效执行的逻辑时(例如字符串操作)才有意义。
一般的经验法则是这样的:
答案 1 :(得分:0)
为什么要重写代码? SUM(somefield) WHERE (condition)
为您提供所需的内容。
$rows = mysql_query('SELECT SUM(somefield) AS `sum` FROM table WHERE (condition)');
$row = mysql_fetch_array($rows);
$sum = $row['sum'];
相反,你建议做这样的事情:
$rows = mysql_query('SELECT somefield FROM table WHERE (condition)');
$sum = 0;
while ($row = mysql_fetch_assoc($rows)) {
$sum += $row['somefield']; }
}
我不明白为什么。 ; - )
这对于代码来说是纯粹的,实际上在第二种情况下传输的数据更多,仅举一例。