表结构:data date,uid string
SELECT
count( 1 )
FROM
(
SELECT
date_sub( a.data, INTERVAL 1 DAY ) signDate,
( @i := DATE_ADD( @i, INTERVAL - 1 DAY ) ) today
FROM
( SELECT data FROM user_dakas WHERE uid = "1" ORDER BY data DESC ) a
INNER JOIN (
SELECT
@i := max( data ) AS signMax
FROM
user_dakas
WHERE
uid = "1"
AND ( TO_DAYS( data ) = TO_DAYS( curdate()) OR TO_DAYS( data ) = TO_DAYS( DATE_ADD( curdate(), INTERVAL - 1 DAY ) ) )
) b
WHERE
b.signMax IS NOT NULL
AND TO_DAYS(
DATE_ADD( @i, INTERVAL - 1 DAY )) = TO_DAYS( date_sub( a.data, INTERVAL 1 DAY ) )
) c
评论