我有2個表格:photo
和like
。我試圖根據一天中喜歡的人數獲得流行的照片。所以基本上像'今天流行'。基於不同時間級別的MySQL熱門排行
SELECT
p.id AS id, COUNT(li.id) AS total_likes \
FROM `photo` p \
LEFT JOIN `like` li \
ON p.id = li.photo_id \
WHERE
li.date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) \
GROUP BY \
p.id
這個效果很好,當今天有足夠的喜歡數量。但如果過去一天沒有喜歡,它將不會返回記錄。
我也想改變這一點。是否有可能達到關卡?例如:基於多天
排名照片:
1. Get photos based on how many likes today
2. Get photos based on how many likes for last week
and so on...
所以基本上這樣做是什麼,比方說,我們需要得到30個項目。首先它會嘗試根據今天有多少喜歡來獲取行。它可以是任何數字20,15等。然後它將得到剩餘的行數達到30,但現在將根據一週內有多少喜歡進行排序。
So something like:
SELECT FROM photo SORT BY likes today, likes in a week ...
感謝您的幫助!
位置更改到AND – Strawberry
DDL和/或sqlfiddle可能會幫助 – Strawberry