SELECT lianxu_days
FROM (
SELECT passenger_openid, max(days) lianxu_days, min(sign_date) start_date, max(sign_date) end_date
FROM (SELECT passenger_openid,
@cont_day :=
(CASE
WHEN (@last_uid = passenger_openid AND DATEDIFF(sign_date, @last_dt) = 1)
THEN
(@cont_day + 1)
WHEN (@last_uid = passenger_openid AND DATEDIFF(sign_date, @last_dt) < 1)
THEN
(@cont_day + 0)
ELSE
1
END) AS days,
(@cont_ix := (@cont_ix + IF(@cont_day = 1, 1, 0))) AS cont_ix,
@last_uid := passenger_openid,
@last_dt := sign_date sign_date
FROM (SELECT
passenger_openid,
DATE(sign_date) sign_date
FROM member_task_sign_record
WHERE passenger_openid = #{passengerOpenid}
and sign_date between DATE_ADD(now(),interval -day(now())
mysql签到任务,获取今天之前连续签到天数
最新推荐文章于 2023-12-20 17:23:21 发布