mysql 七日当中是否登录
时间: 2023-07-25 07:11:27 浏览: 36
要查询用户在七日内是否登录,可以通过以下 SQL 语句实现:
```
SELECT user_id,
MAX(CASE WHEN date = '2022-01-01' THEN IF(login_count > 0, 1, 0) ELSE NULL END) AS day_1,
MAX(CASE WHEN date = '2022-01-02' THEN IF(login_count > 0, 1, 0) ELSE NULL END) AS day_2,
MAX(CASE WHEN date = '2022-01-03' THEN IF(login_count > 0, 1, 0) ELSE NULL END) AS day_3,
MAX(CASE WHEN date = '2022-01-04' THEN IF(login_count > 0, 1, 0) ELSE NULL END) AS day_4,
MAX(CASE WHEN date = '2022-01-05' THEN IF(login_count > 0, 1, 0) ELSE NULL END) AS day_5,
MAX(CASE WHEN date = '2022-01-06' THEN IF(login_count > 0, 1, 0) ELSE NULL END) AS day_6,
MAX(CASE WHEN date = '2022-01-07' THEN IF(login_count > 0, 1, 0) ELSE NULL END) AS day_7
FROM user_login_history
WHERE date >= DATE_SUB('2022-01-07', INTERVAL 7 DAY)
GROUP BY user_id;
```
这个查询语句会查询用户在过去七天内的登录历史,然后将每个用户在每一天是否登录的结果用 `CASE WHEN` 语句转换成列,最后再按照用户 ID 进行分组。这样,你就可以轻松地查询用户在过去七天内是否登录了。如果结果为 1,表示用户在该天登录过;如果为 0,表示用户在该天没有登录;如果为 NULL,则表示该天没有该用户的登录记录。