我的表值是:
id stock
1 7|8
2 80|50|30
我的查询是
我使用了PHP函数
function numofQuantity() {
$sql = "SELECT sum(stock) as quantity FROM products";
$result = dbQuery($sql);
$data=mysql_fetch_assoc($result);
return $data['quantity'];
}
这里显示的结果是87。
如何将所有值相加?谢谢
答案 0 :(得分:4)
如你所见,这只会导致问题。您应该更改数据库设计。使用另一个表来存储股票:
stock table
-----------
id
product_id
stock
你可以像这样总结股票
SELECT p.id, sum(s.stock) as quantity
FROM products p
inner join stock s on s.product_id = p.id
group by p.id
答案 1 :(得分:2)
现在在Mysql中很难做到。你可以像下面这样做:
function numofQuantity() {
$sql = "SELECT stock FROM products";
$result = dbQuery($sql);
$data=mysql_fetch_assoc($result);
$arrayVal = explode("|", $data['stock']);
return array_sum($arrayVal)
}
了解更多信息:http://us3.php.net/array_sum
答案 2 :(得分:1)
首先,如果您希望对列中的各个值执行任何操作,则应规范化数据库。
如果没有规范化,您将需要PHP的支持(PDO示例):
$sum = 0;
$res = $db->query('SELECT stock FROM products');
foreach ($res->fetchAll(PDO::FETCH_COLUMN) as $stocks) {
$sum += array_sum(explode('|', $stocks));
}
echo $sum;