Php mysql - 按临时值排序

时间:2016-03-08 08:34:39

标签: php mysql sql algorithm

我有sql,有4个值--ID,TEXT,LIKES,TIME。我有php页面显示来自sql的帖子。我想首先展示“热门”帖子。

让我们说“热门”帖子由公式给出 - LIKES / TIME。

最有效的方法是什么?

我应该在SQL中使用SCORE创建另一个列,并且每隔几分钟更新一次?或者也许每次用户进入网站时,他都会查看过去24小时内所有帖子的分数?

2 个答案:

答案 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个活跃的。