[英]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.