-- 用户签到时 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;