【问题标题】:Achieve this only with MySQL只有使用 MySQL 才能实现这一点
【发布时间】:2018-08-18 20:25:53
【问题描述】:
$query = "SELECT stake, cuota, ID FROM tips WHERE ID = 1";

我的桌子

+------------------------+------+-----+---------+
| id                     |stake |cuota| ID      | 
+------------------------+------+-----+---------+
| 1                      |3.250 |5.00 | 1       | 
| 2                      |3.000 |5.00 | 1       |
+------------------------+------+-----+---------+

一切都在 PHP 中完美运行。

但我想在查询中使用 mysql。

我想在 MySQL 中拥有它而不必使用 PHP -> 这个结果 * 21.25 *

$sum = 0;
foreach ($fromMysql as $row):
$sum+= $row['stake'] * $row['cuota'] - $row['stake'];  
/*individual sum.  first = 11.25 and second = 10.00*/
endforeach;
echo $sum; /* = 21.25 */

【问题讨论】:

标签: php mysql database mysqli


【解决方案1】:

首先,我对 PHP 不是很熟悉,所以我可能无法正确理解您的问题,但据我了解,结果应该是 25 而不是 21.25。

无论如何,在MySQL 你应该这样做:

SELECT SUM(stake * cuota - stake) FROM [your_table]

此查询将为您提供 25 的结果。 要查询您的预期结果 (21.25),您可以:

SELECT SUM(stake * cuota - cuota) FROM [your_table]

【讨论】:

  • SELECT SUM(stake * cuota - stake) FROM tips where resultado = 1
【解决方案2】:

据我所知,这是不可能的,也不应该在 sql 中完成,因为它是一种数据查询语言,而不是一种计算价格的语言。

我认为使用您目前拥有的解决方案非常好

foreach ($fromMysql as $row) {
    $sum+= $row['stake'] * $row['cuota'] - $row['stake'];
}  

这可能看起来更干净一些

【讨论】:

  • 那为什么SQL有像SUM()这样的函数呢?
猜你喜欢
  • 1970-01-01
  • 2012-09-26
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 2019-11-10
  • 1970-01-01
相关资源
最近更新 更多