SELECT
date_format(r.create_time, '%Y-%m-%d %H:%i:%s') as createTime,
r.user_id as userId,
r.course_id as courseId,
r.course_name as courseName,
r.course_directory_id as courseDirectoryId,
r.course_directory_name as courseDirectoryName,
r.end_time as endTime,
d.duration
FROM
mdc_learning_records r
LEFT JOIN mdc_course_directory d ON d.id = r.course_directory_id
WHERE
r.create_time IN (
SELECT
MAX( t.create_time )
FROM
mdc_learning_records t
WHERE
t.user_id = #{userId}
and TO_DAYS(r.create_time) =TO_DAYS(NOW())
GROUP BY
t.course_directory_id
)
AND r.user_id = #{userId}
这周观看记录
SELECT
date_format(r.create_time, '%Y-%m-%d %H:%i:%s') as createTime,
r.user_id as userId,
r.course_id as courseId,
r.course_name as courseName,
r.course_directory_id as courseDirectoryId,
r.course_directory_name as courseDirectoryName,
r.end_time as endTime,
d.duration
FROM
mdc_learning_records r
LEFT JOIN mdc_course_directory d ON d.id = r.course_directory_id
WHERE
r.create_time IN (
SELECT
MAX( t.create_time )
FROM
mdc_learning_records t
WHERE
t.user_id = #{userId}
and YEARWEEK(DATE_FORMAT(create_time,'%Y-%m-%d'))=YEARWEEK(NOW())
GROUP BY
t.course_directory_id
)
AND r.user_id = #{userId}
获取最近连续天数
SELECT
uid,max(days) continuousDays,min(login_day) startDate,max(login_day) endDate
FROM(SELECT
uid,@cont_day :=(CASEWHEN(@last_uid= uid AND DATEDIFF( login_dt,@last_dt)=1)THEN(@cont_day+1)WHEN(@last_uid= uid AND DATEDIFF( login_dt,@last_dt)<1)THEN(@cont_day+0)ELSE1END)AS days,(@cont_ix :=(@cont_ix+IF(@cont_day=1,1,0)))AS cont_ix,@last_uid := uid,@last_dt := login_dt login_day
FROM(SELECT user_id AS uid, create_time AS login_dt FROM mdc_learning_records WHERE user_id ='saa'ORDERBY create_time )AS t,(SELECT@last_uid :='',@last_dt :='',@cont_ix :=0,@cont_day :=0)AS t1
)AS t2
GROUPBY
uid,
cont_ix