我有一个动态的行数,我想要做一些数学运算。这是故事:
表格列:
当前查询:
"SELECT cu.id, cu.use_count
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
规则:
use_count
输入只能是1
或-1
。
期望的结果:
我知道我会拉出具有相同coupon_id
的行,所以我希望做的就是完成所有使用mysql的加/减,这样我就会有一行对于每个唯一coupon_id
,每行的总计为use_count
。我这样做1)保存步骤2)学习我还不知道的东西。
当前输出:
id:1, timestamp:5/6/15, user_id:1, coupon_id:1, use_count:1
id:2, timestamp:5/7/15, user_id:1, coupon_id:1, use_count:-1
id:3, timestamp:5/7/15, user_id:1, coupon_id:1, use_count:1
id:4, timestamp:5/8/15, user_id:1, coupon_id:1, use_count:1
所需输出
id:null, timestamp:null, user_id:1, coupon_id:1, use_count:2 // 1 + -1 + 1
答案 0 :(得分:4)
您正在寻找的内容称为"聚合函数"。在这种情况下,您希望将SUM
聚合函数与Group By
子句结合使用。这将为Group By:
"SELECT cu.id, SUM(cu.use_count)
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . "
GROUP BY cu.coupon_id;";