我需要你的帮助。我正在实现一个小型电子商务网站,并执行两个查询以获得如下结果:
我的数据库表“购物车”
id itemid qty price customerid
1 item1 1 2500 1
2 item2 1 11000 1
我需要获取“item1”价格,因此我使用以下查询
SELECT qty, price FROM cart WHERE itemid='item1';
我还需要根据客户 ID 获取所有商品价格的总和,因此我使用以下价格。
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'
或者您可以使用 an aggregate 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 往返可能不值得您付出开发精力。
关于php - 在一个mysql查询中执行多条语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31366919/