我有购物车,物品作为数组存储在会话中。数组键表示项的id,数组值表示项的数量。 array([1]=>1, [2]=>1);
我想计算总价。是否有可能使用一个mysql查询?
例如:
SELECT SUM(c.count * i.price) FROM (--virtual table--) c
LEFT JOIN item i ON i.id=c.id;
答案 0 :(得分:1)
我知道你想要这个:
SELECT 1 AS product_id, 1 AS quantity
UNION ALL
SELECT 2, 1
UNION ALL
SELECT 3, 100
...
在任何情况下,执行其中一项看起来不那么尴尬:
这样你就可以在一个地方完成所有计算。
答案 1 :(得分:0)
您可能指的是Views或subqueries - 如果是,那么您是对的。
答案 2 :(得分: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
将包含使用此Pseudocode的总和