MySQL行数据的乘法

时间:2011-12-16 19:21:51

标签: php mysql

我希望能够将所有价格乘以我的数据库,然后将总数乘以10。

下面的代码执行加法而不是乘法

<?php
$d = $_GET['d'];
$con = mysql_connect("localhost","username","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("databasename", $con);//

$sql= "SELECT SUM(prices) FROM tablename WHERE Date = '$d' AND Prices >0.20 AND Type= 'sold'";
$results = mysql_query($sql);
$row = mysql_fetch_array($results);
echo $row[0]*10;


mysql_close($con);
?> 

例如

id prices
1   25
2   36
3   45

我想要25 * 36 * 45 * 10而不是25 + 36 + 45 * 10

希望任何人都可以提供帮助

2 个答案:

答案 0 :(得分:6)

这会有效,有限制(数字应该只是正数):

SELECT 10 * EXP(SUM(LOG(prices))) AS result
FROM tablename 
WHERE ...

thnx应该去 Napier 和他的精彩发明 logarithms

答案 1 :(得分:-1)

如何不进行乘法运算?你得到0?你得到一个错误?

您可以按原样在数据库中执行此操作,请记住

10 x (a + b + c + ...)

完全相同
10a + 10b + 10c + ...

所以你可以简单地做

SELECT 10*SUM(prices) from ...

SELECT SUM(10*prices) from ...

但是,我注意到您没有任何错误处理。如果你的查询失败,mysql_query()将返回一个布尔值false,然后你从中尝试获取一行,这也会返回一个布尔值假。

那个boolean false将在$ row中,并且你将它用作数组,这意味着$ row [0]将是一个php NULL。 NULL * 10将为整数0。

将查询调用更改为以下内容:

$results = mysql_query($sql) or die(mysql_error());

看看弹出的是什么。