[英]execute multiple statements in one mysql query
我需要你的帮助。 我正在实施一个小型电子商务网站,并即时执行两个查询以获取结果,如下所示:
我的数据库表“ cart”
id itemid qty price customerid
1 item1 1 2500 1
2 item2 1 11000 1
我需要获得“ item1”的价格,所以我正在使用以下查询
SELECT qty, price FROM cart WHERE itemid='item1';
我还需要根据customerid获取所有商品价格的总和,因此我正在使用以下商品。
SELECT SUM(price) AS totalprice, COUNT(*) AS totalitems FROM cart WHERE customerid='1';
如何通过在php mysql中使用mysql_query()一次执行查询来获得两个结果;
提前致谢!
通过使用UNION ALL
操作并将数据分成几行,可以消除从php到MySQL的两次往返之一。
SELECT 'item' name, itemid item, qty, price FROM cart WHERE itemid='item1'
UNION ALL
SELECT 'count', customerid, COUNT(*), 0 FROM cart WHERE customerid='1'
或者,您可以WITH ROLLUP
汇总汇总购物车。
SELECT customerid, item, SUM(qty) qty, SUM(price) price, COUNT(*) items
FROM cart
GROUP BY customerid, item WITH ROLLUP
WHERE customerid ='1'
这将返回结果集,该结果集以customerid的摘要行结尾。 这可能是您想要的。
必须说:仅消除一个额外的php <-> MySQL往返可能不值得您进行开发。
如果您仅在构建一个小型站点,则可以使用一个丑陋的解决方法。 实现一个子查询,其中包括每一行的总和; 像这样:
SELECT
qty, price,
(SELECT SUM(price) FROM cart WHERE customerid='1') as totalprice,
(SELECT COUNT(*) FROM cart WHERE customerid='1') AS totalitems
FROM
cart
WHERE
itemid='item1';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.