Laravel orderby分数/日期(作为分数)

时间:2015-02-09 16:21:18

标签: php mysql sql laravel

挖了很长一段时间,我没有太多代码...... :( 我想添加一种机制,根据帖子分数/创建日期对我网站中的帖子进行排名

基本上我需要的是一个查询, post.created_at - (减去 TIME(现在) VALUE * 而不是按得分/ VALUE * DESC

排序

到目前为止,我已成功按时间/分数排序

$posts = Post::orderBy('score', 'DESC')->orderBy('created_at', 'DESC')->paginate(12);

1 个答案:

答案 0 :(得分:2)

您可以使用DB :: raw()函数创建排名分数,然后在orderBy方法中使用它。

POST::select(DB::raw('(score / (created_at -NOW())) as "ordering_value", other, columns'))->orderBy("ordering_value", "desc");

我认为你想要的是NOW() - created_at来获得帖子的年龄。