Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql查询中的算法_Sql - Fatal编程技术网

sql查询中的算法

sql查询中的算法,sql,Sql,我有一个动态的行数,我正在拉,我想做一些数学。故事是这样的: 表格列: "SELECT cu.id, cu.use_count FROM coupons_used cu WHERE cu.user_id = " . $_SESSION['user']->ID . ";"; 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,

我有一个动态的行数,我正在拉,我想做一些数学。故事是这样的:

表格列:

"SELECT cu.id, cu.use_count 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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
  • 优惠券id
  • 使用计数
当前查询:

"SELECT cu.id, cu.use_count 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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
规则:

"SELECT cu.id, cu.use_count 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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
use\u count
输入只能是
1
-1

所需结果:

"SELECT cu.id, cu.use_count 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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的行,所以我希望用mysql完成所有的加/减操作,这样我将为每个唯一的
优惠券id
设置一行,并为每行的
使用计数
总计。我这样做1)是为了节省一步,2)是为了学习一些我还不知道的东西

电流输出:

"SELECT cu.id, cu.use_count 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . ";";
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,用户id:1,优惠券id:1,使用计数:2//1+-1+1

您所寻找的是一个“聚合函数”。在这种情况下,您希望将
SUM
aggregate函数与
groupby
子句结合使用。这将通过以下方式为组中指定的每个唯一结果返回一条记录:

"SELECT cu.id, SUM(cu.use_count) 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . "
GROUP BY cu.coupon_id;";

你要找的是所谓的“聚合函数”。在这种情况下,您希望将
SUM
aggregate函数与
groupby
子句结合使用。这将通过以下方式为组中指定的每个唯一结果返回一条记录:

"SELECT cu.id, SUM(cu.use_count) 
FROM coupons_used cu
WHERE cu.user_id = " . $_SESSION['user']->ID . "
GROUP BY cu.coupon_id;";

我仍然不知道你想做什么……你只是在寻找
sum
?你没有清楚地描述你遇到的问题,或者问一个可以回答的问题。您是否需要在Google上搜索SQL教程以了解诸如SUM()之类的聚合函数?问题不是问题的基本层面,尽管这是一个RTFM问题。问题是这表明你缺乏研究努力。我可不希望有你这样的名声。顺便说一句,我不是那个被否决的人。我的看法是:没有人知道一切。问RTFM问题是可以的,但前提是你真的先做了RTFM:-)。我仍然不知道你想做什么…你只是在寻找
sum
?你没有清楚地描述你遇到的问题或提出一个可以回答的问题。您是否需要在Google上搜索SQL教程以了解诸如SUM()之类的聚合函数?问题不是问题的基本层面,尽管这是一个RTFM问题。问题是这表明你缺乏研究努力。我可不希望有你这样的名声。顺便说一句,我不是那个被否决的人。我的看法是:没有人知道一切。可以问RTFM问题,但前提是您确实先做了RTFM:-)。