如何在MySQL中对每行乘以2个单元格进行查询?

45
我想对每行的2个单元格进行乘法运算,并将该值放入名为Total的最后一列中。这可以通过普通查询完成吗?
示例:
Pieces | Price | Total
6      |   4   |  null // should be 24
2      |  10   |  null // should be 10
4个回答

94

使用以下代码:

SELECT 
    Pieces, Price, 
    Pieces * Price as 'Total' 
FROM myTable

啊,是的,我不更新,只是用加倍的价格检索。 - Prescott
1
有没有一种方法可以将它四舍五入到两位小数? - Arne Nouwynck
5
ROUND(Pieces * Price, 2)作为Total:将“Pieces”和“Price”相乘的结果四舍五入至小数点后两位,并将其命名为“Total”。 - Shoaib Nawaz

11

你可以使用以下方法:

UPDATE mytable SET Total = Pieces * Price;

8
我假设这个应该可行。这将实际将其放置在数据库中的列中。
UPDATE yourTable yt SET yt.Total = (yt.Pieces * yt.Price)

如果你想从数据库中检索2个值,并将它们的乘积仅放在结果的第三列中,那么

SELECT yt.Pieces, yt.Price, (yt.Pieces * yt.Price) as 'Total' FROM yourTable yt

我将成为你的朋友


抱歉,我认为当您使用“INSERT”开始查询时,它是不言自明的。无论如何,如果您进行编辑,我可以撤销负评。 - vbence
我进行了一次编辑,但如果您留下评论,作者会收到通知。现在我只是碰巧注意到了-2。 :D - Nanne

-2

这是我的解决方案:

我正在寻找如何显示结果而不是计算...

所以,在这种情况下,数据库中没有总列,但网页上有一个总数...

 <td><?php echo $row['amount1'] * $row['amount2'] ?></td>

还需要先做这个...

<?php 
   $conn=mysql_connect('localhost','testbla','adminbla');
mysql_select_db("testa",$conn);

$query1 = "select * from info2";
$get=mysql_query($query1);
while($row=mysql_fetch_array($get)){
   ?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接