我有sql,有4个值--ID,TEXT,LIKES,TIME。我有php页面显示来自sql的帖子。我想首先展示“热门”帖子。
让我们说“热门”帖子由公式给出 - LIKES / TIME。
最有效的方法是什么?
我应该在SQL中使用SCORE创建另一个列,并且每隔几分钟更新一次?或者也许每次用户进入网站时,他都会查看过去24小时内所有帖子的分数?
答案 0 :(得分:2)
我认为你可以通过这种方式订购
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
答案 1 :(得分:1)
SELECT id, count(*) as score FROM <yourtable> GROUP BY id ORDER BY score DESC LIMIT 0,10
这假定id是帖子的主键,你想要前10个活跃的。