-- 用户签到时
UPDATE
签到表
SET
连续签到天数 = CASE 最近签到日期
WHEN Today THEN 连续签到天数
WHEN Today - 1 THEN (连续签到天数 + 1) MOD 8
ELSE 1
END,
最近签到日期 = Today
WHERE
用户ID = 用户ID;
-- 查询用户连续签到天数
SELECT
CASE
WHEN 最近签到日期 >= Today - 1 THEN 连续签到天数
ELSE 0
END AS 连续签到天数
FROM
签到表
WHERE
用户ID = 用户ID;