我有一个包含用户每次登录的表。我正在尝试制作一个忠诚度系统,如果用户一周内每天登录,则奖励用户。
所以,真正的问题是,我如何获得用户(user_id)在设定的一周内的每条记录并知道每天都有登录?MySQL 是否能够做到这一点,或者我是否必须对每个用户进行查询,然后在此基础上进一步处理?
我唯一能想到的就是:
SELECT * FROM `users` WHERE `users`.`time_they_logged_in` = IN WEEK X
<?php
$result = $pdo->prepare('SELECT....');
$result->bindParam(1, etc etc);
$logged_in_on = array(0, 0, 0, 0, 0, 0, 0);
foreach($result->fetchAll() as $login_record) {
if(LOGGED IN DAY = MONDAY -> $logged_in[0] = true)
}
Run Code Online (Sandbox Code Playgroud)
想法:记录每周,每天一列和总数 - 然后在查看页面/登录时更新它,然后查找总共有 7 个的项目。
atx*_*dba 10
也许。
SELECT count(distinct date(time_they_logged_in))
FROM `users`
WHERE `users`.`time_they_logged_in` between now()-interval 7 day and now();
Run Code Online (Sandbox Code Playgroud)
如果计数为 7,则他们在过去一周内每天至少登录一次。