我有一个跟踪点击的功能。它按天分组,因此用户每天只能获得一次点击。
客户希望在一个特殊的日子里,用户可以获得当天所有点击的信用。
我最初的想法是拥有两个功能。第一个函数将所有不等于特殊日期的点击拉出,并按天分组。第二个函数仅从特殊日期开始点击。然后我将两者加在一起。
有没有办法编写查询,所以我不必使用两个函数?
我当前用于提取不在给定日期的所有点击的查询是:
$sql = "SELECT DATE(timeclicked) AS Date, platform, COUNT(DISTINCT email) AS click_sum
FROM trackclicks
WHERE email='".$email."'
AND uid='".$uid."'
AND action LIKE '%completed%'
AND date(timeclicked) != CAST('".$giving_date."' AS DATE)
GROUP BY platform, DATE(timeclicked) ";
ADDITION
这是我上一个问题的补充。该查询有效,并在PHPMyAdmin
中显示Date platform click_sum
2015-10-03 Facebook 13
2015-10-04 Facebook 1
2015-10-03 Twitter 14
2015-10-04 Twitter 1
我的查询以此结尾:
if ($result = $mysqli->query($sql)) {
$response['sum'] = $result->num_rows;
}
这给了我2,我需要它给我14分为facebook和15分为twitter
答案 0 :(得分:1)
这只是我在你的陈述中添加一个if。无法测试,因为我没有数据库设置。希望对你有效。 if只检查并使用不同的计数,除非在特殊日期。
$sql = "SELECT DATE(timeclicked) AS Date, platform, IF(date(timeclicked) != CAST('".$giving_date."' AS DATE), COUNT(DISTINCT email), COUNT(email)) AS click_sum
FROM trackclicks
WHERE email='".$email."'
AND uid='".$uid."'
AND action LIKE '%completed%'";