如何仅从数据库查询中获取前 4 个结果
How do I grab only first 4 results from a DB query
在我的 Laravel 项目中,我正在执行数据库查询,在其中搜索我的媒体 table 并获取属于 user_id 的所有结果。结果按得票最多的顺序降序排列。但是,这 returns 所有用户图像。我只想获取前 4 个结果,而不是全部。如何做到这一点?
我的媒体 table 看起来像这样。
| id | user_id | url | votes |
我的控制器是这样的
public function getUserImagesByVote($user_id)
{
return Media::where('user_id', $user_id)->orderBy('votes', 'DESC')->get();
}
如laravel docs所述,可以使用take()
限制结果,skip()
偏移
Offset & Limit
$users = DB::table('users')->skip(10)->take(5)->get();
在你的情况下使用这个查询
Media::where('user_id', $user_id)->take(4)->orderBy('votes', 'DESC')->get()
你可以为它使用 take() 。我相信 "Media::where('user_id', $user_id)->orderBy('votes', 'DESC')->take(4)->get();" 会有所帮助。你有 lavarvel 提供的 take() 和 skip() 。希望这可以帮助。
在我的 Laravel 项目中,我正在执行数据库查询,在其中搜索我的媒体 table 并获取属于 user_id 的所有结果。结果按得票最多的顺序降序排列。但是,这 returns 所有用户图像。我只想获取前 4 个结果,而不是全部。如何做到这一点?
我的媒体 table 看起来像这样。
| id | user_id | url | votes |
我的控制器是这样的
public function getUserImagesByVote($user_id)
{
return Media::where('user_id', $user_id)->orderBy('votes', 'DESC')->get();
}
如laravel docs所述,可以使用take()
限制结果,skip()
偏移
Offset & Limit
$users = DB::table('users')->skip(10)->take(5)->get();
在你的情况下使用这个查询
Media::where('user_id', $user_id)->take(4)->orderBy('votes', 'DESC')->get()
你可以为它使用 take() 。我相信 "Media::where('user_id', $user_id)->orderBy('votes', 'DESC')->take(4)->get();" 会有所帮助。你有 lavarvel 提供的 take() 和 skip() 。希望这可以帮助。