我有sql,有4個值 - ID,TEXT,LIKES,TIME。我有顯示從SQL的帖子的PHP頁面。我想先顯示「熱門」帖子。Php mysql - 按臨時值排序
可以說,「熱門」的職位是由公式 - LIKES/TIME給出的。
這樣做最有效的方法是什麼?
我應該在SQL中使用SCORE創建另一列,並且每隔幾分鐘更新一次嗎?或者,也許每次用戶進入網站時,他都會查看過去24小時內所有帖子的分數?
我有sql,有4個值 - ID,TEXT,LIKES,TIME。我有顯示從SQL的帖子的PHP頁面。我想先顯示「熱門」帖子。Php mysql - 按臨時值排序
可以說,「熱門」的職位是由公式 - LIKES/TIME給出的。
這樣做最有效的方法是什麼?
我應該在SQL中使用SCORE創建另一列,並且每隔幾分鐘更新一次嗎?或者,也許每次用戶進入網站時,他都會查看過去24小時內所有帖子的分數?
我想你可以簡單地通過這種方式
Select id, text, likes, time, likes/time as score from youtable
order by score
訂購,如果你的時間是一個日期,你需要差異從actula日期,你可以做
Select id, text, likes, time, likes/(curdate() - time) as score from youtable
order by score
謝謝! PS。時間是日期,我該如何做CurrentTime-time?要檢查通過的時間 –
我已經更新了答案 – scaisEdge
SELECT id, count(*) as score FROM <yourtable> GROUP BY id ORDER BY score DESC LIMIT 0,10
這是假定id爲該帖子的主鍵,你想要前10名活躍的。
您是否還有一個帶有給定記錄的時間戳的列? –
只需進行兩個查詢,其中一個用於使用LIKES/TIME公式的熱門帖子具有一定限制,另一個用於按時間順序排列的普通帖子 – Asur