Php 如何在MySQL中执行多个计算?
根据这些数据,我想求和(tbl_basket subt),乘以折扣,再加上运费Php 如何在MySQL中执行多个计算?,php,mysql,function,sum,Php,Mysql,Function,Sum,根据这些数据,我想求和(tbl_basket subt),乘以折扣,再加上运费 # tbl_basket order_id qty price subt 1 1 10.00 10.00 1 4 5.00 20.00 1 3 12.00 36.00 # tbl_coupon id
# tbl_basket order_id qty price subt
1 1 10.00 10.00
1 4 5.00 20.00
1 3 12.00 36.00
# tbl_coupon id name discount
1 "10% off" 10.00
# tbl_shipping id cost
1 4.99
# tbl_order coupon_id shipping_id total
1 1 ? # I want to update total
我想查询篮子:
SELECT * FROM tbl_basket WHERE order_id = $order_id
把这些项目加起来,我想是这样的吗
SELECT SUM(subt) FROM tbl_basket WHERE order_id = $order_id
查询折扣
SELECT discount FROM tbl_coupon AS coupon
INNER JOIN tbl_order AS order
WHERE coupon.id = order.coupon_id
Q) 如何将此查询合并到MySQL中的另一个查询中
Q) 如何设置折扣后的值(新总计=总计*(100折扣)/100)
我觉得直接从数据库中求和会使系统更加健壮,这就是我想这样做的原因
Q) 有更好的方法吗
谢谢你的帮助。我同意evan的观点-用PHP进行计算要好得多。如果没有别的,你最好看看你在做什么 但是,如果您真的想看看它在SQL中的样子,您可以尝试以下方法:
SELECT ((select total price query)*(select discount query) + (select shipping query))
当然,使用子查询,您可以将所有内容都放到一个查询语句中。但是,添加的越多,调试就越困难。在PHP中,组装片段要容易得多
祝你好运。我同意evan的观点-用PHP进行计算要好得多。如果没有别的,你最好看看你在做什么 但是,如果您真的想看看它在SQL中的样子,您可以尝试以下方法:
SELECT ((select total price query)*(select discount query) + (select shipping query))
当然,使用子查询,您可以将所有内容都放到一个查询语句中。但是,添加的越多,调试就越困难。在PHP中,组装片段要容易得多
祝你好运。我也倾向于同意其他人的观点,他们说你应该坚持用PHP来做这件事,尽管在开销上没有什么不同。只要所有必要的索引都准备好了,您就可以使用以下查询以最小的开销计算最终的总数
SELECT (SUM(b.subt) * ((100 - MIN(c.discount)) / 100)) + MIN(s.cost) AS final_total
FROM tbl_order o
INNER JOIN tbl_basket b
ON o.id = b.order_id
INNER JOIN tbl_shipping s
ON s.id = o.shipping_id
INNER JOIN tbl_coupon c
ON c.id = o.coupon_id
WHERE o.id = 1
GROUP BY o.id;
我也倾向于同意其他人的观点,他们说您应该坚持用PHP来实现这一点,尽管在开销方面并没有什么不同。只要所有必要的索引都准备好了,您就可以使用以下查询以最小的开销计算最终的总数
SELECT (SUM(b.subt) * ((100 - MIN(c.discount)) / 100)) + MIN(s.cost) AS final_total
FROM tbl_order o
INNER JOIN tbl_basket b
ON o.id = b.order_id
INNER JOIN tbl_shipping s
ON s.id = o.shipping_id
INNER JOIN tbl_coupon c
ON c.id = o.coupon_id
WHERE o.id = 1
GROUP BY o.id;
通常,对于较大的网站,数据库服务器上的负载越小越好。你可以用php来完成这一切。谢谢,我可能最终会这么做。尽管出于教育目的,我还是想知道一些在MySQL中实现这一点的方法@一般来说,对于较大的网站,数据库服务器上的负载越小越好。你可以用php来完成这一切。谢谢,我可能最终会这么做。尽管出于教育目的,我还是想知道一些在MySQL中实现这一点的方法@谢谢你的回答。这样做的方法是对sub-SELECT语句应用数学运算符,然后得到总数@谢谢你的回答。这样做的方法是对sub-SELECT语句应用数学运算符,然后得到总数@geoB@nnichols-开销的不同之处在于,您可以将计算全部移动到另一台计算机。一般来说,您可以便宜地购买前端web服务器。数据库服务器通常是一个瓶颈,而且价格昂贵。当然,这只适用于大公司的大型网站。@evan完全同意。然而,在我的例子中,为一个朋友做一个项目(小型网络初创企业)。@nnichols-开销的不同之处在于,你可以将计算转移到另一台计算机上。一般来说,您可以便宜地购买前端web服务器。数据库服务器通常是一个瓶颈,而且价格昂贵。当然,这只适用于大公司的大型网站。@evan完全同意。然而,在我的例子中,为朋友做一个项目(小型网络初创企业)。