【问题标题】:How do I get the N newest database entries using Eloquent?如何使用 Eloquent 获取 N 个最新的数据库条目?
【发布时间】:2013-08-19 14:44:11
【问题描述】:

我尝试在数据库中获取最新帖子。我试过这个:

$users = Post::take(10)->get();

这会生成该模型中的前 10 个帖子。我想要最新的10个。我有表格行created_atupdated_at

【问题讨论】:

  • “雄辩”..?这和这个问题有什么关系?
  • 我更新了澄清,谢谢!
  • 从未听说过 eloquent,但快速浏览一下文档会发现 Post::orderBy('created_at', 'DESC')->take(10)->get(); 应该可以工作?

标签: mysql laravel eloquent


【解决方案1】:

作为 Paolo Bergantino said,这将完成这项工作:

# Get n latest posts #
$n = 10;
$latest_posts = Post::orderBy('created_at', 'DESC')->take($n)->get();

有关更多信息,请查看文档部分:Select - Order By, Group By, And Having

【讨论】:

  • 虽然created_at 可能适用于大多数情况,但您应该尽可能使用id DESC。它是一个较小的字段,排序速度更快,并且作为主键始终被索引。使用created_at 的唯一原因是缺少自动递增字段。
  • 不错的提示@vFragosop!我还没有意识到这一点!
  • 如果表有数百万个帖子,这会不会很慢?虽然不使用 created_at,但使用 id
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 2010-10-12
  • 1970-01-01
  • 2021-04-12
  • 1970-01-01
相关资源
最近更新 更多