2011-07-31 24 views
1

我有購物車和項目作爲數組存儲在會話中。數組鍵表示項目的id,數組值是項目的數量。 array([1]=>1, [2]=>1);是否有可能在mysql查詢中創建和使用「虛擬」表?

我要計算總價。是否有可能使它使用一個MySQL查詢?

例如:

SELECT SUM(c.count * i.price) FROM (--virtual table--) c 
             LEFT JOIN item i ON i.id=c.id; 
+0

包含總和是。 http://dev.mysql.com/doc/refman/5.0/en/subqueries.html – Galz

回答

1

我知道你想這一點:

SELECT 1 AS product_id, 1 AS quantity 
UNION ALL 
SELECT 2, 1 
UNION ALL 
SELECT 3, 100 
... 

在任何情況下,它看起來不太彆扭執行下列操作之一:

  • 從數據庫數據庫
  • 獲取價格
  • 店推車

這樣,你可以做在一個地方所有的計算。

0

不可能,因爲數據在會話中(除非你想寫會話數據在數據庫中)
可能,我建議這種方法

SELECT i.id, i.price 
FROM item i 
WHERE i.id in (array.keys) 

假設結果放在一個集合中,
itemResult是集合 然後遍歷

var total = 0 
for(var item : itemResult) 
    total += item.price * array[i.id] 

total會使用這種僞

相關問題