2012-08-09 52 views
0

我創建的視頻爲iPhone應用程序的趨勢飼料和我在一個意見表在過去24小時計算所有的觀點的視頻(一個行添加到的意見表每次它是視圖,並具有時間戳和videoid)。當我爲它做無限滾動時,我發送最後一個視頻視圖的計數,並在mySQL中使用HAVING語句來獲取下一個視頻獲取下一個10批次信息的certin ID的MySQL查詢後?

"HAVING COUNT(views.videoid) < 'count of views'" with a "LIMIT 10"最後選擇10。

這是有效的,但是如果一個視頻在過去24小時內與另一個視頻具有相同數量的視圖,那麼該視頻可能會被跳過,因爲它是<聲明。如果我用一個< =聲明的視頻會出現多次。

有沒有我可以在

"ORDER BY COUNT(views.videoid) DESC" 

後VideoID的後選擇影片獲得線下一個視頻的方法嗎?可能不會,但有人知道我會如何去做這件事。這是我的查詢。

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 

回答

1

您可以使用偏移與LIMIT:

SELECT [...] LIMIT 20,10; 

這檢索10行,在結果開始排20。

然後,如果你通過計數和視頻ID設爲您的ORDER BY訂購,您總能獲得以相同的順序結果,不應該跳過任何。

相關問題