아이폰 앱에 대한 인기 급상승 동영상을 만들고,보기 테이블에서 최근 24 시간 동안의 동영상에있는 모든보기를 계산 중입니다.보기가있을 때마다 행이 추가되고 타임 스탬프가 있습니다. 및 videoid). 무한 스크롤을 할 때 마지막 비디오 뷰 수를 다시 보내고 mySQL에서 HAVING 문을 사용하여 다음 비디오를 가져옵니다.certin ID mySQL 쿼리 후 다음 10 배치 정보를 얻으시겠습니까?
"HAVING COUNT(views.videoid) < 'count of views'" with a "LIMIT 10"
마지막에 10을 선택하십시오.
동영상의 조회수가 지난 24 시간 동안 다른 동영상의 조회수와 동일한 경우이 동영상은 < 문이므로 건너 뛸 수 있습니다. 그리고 내가 < = 문장 동영상을 여러 번 표시합니다.
I 라인의 다음 비디오를 얻기 위해
"ORDER BY COUNT(views.videoid) DESC"
후 동영상 ID 후 비디오를 선택할 수있는 방법이 있나요? 아마 아니지만 누가 그 일을 어떻게 할 것인지 알 수 있습니다. 여기 내 쿼리입니다.
SELECT f.userid, f.username, video.videoid, video.videolink, video.timestamp, video.caption, video.tags, video.address, video.likecount, video.commentcount, video.viewcount, video.shareid, CASE WHEN liketable.likekey > 0 THEN 1 ELSE 0 END AS didlike, COUNT(views.videoid) AS trendcount
FROM user AS f
RIGHT JOIN video ON video.userid = f.userid
LEFT JOIN user ON user.token = ?
LEFT JOIN liketable ON liketable.videoid = video.videoid AND liketable.userid = user.userid
RIGHT JOIN views ON views.videoid = video.videoid
WHERE views.timestamp > ?
GROUP BY video.videoid
HAVING COUNT(views.videoid) < ?
ORDER BY COUNT(views.videoid) DESC
LIMIT 10