Laravel从最近的20行中随机选择5行(加载后不映射,只需一个查询)



我该怎么做呢

示例:从最近的20行中随机选择5行

我需要用雄辩来做到这一点,并从数据库查询得到数据,而不是映射数据

我找到了这个查询,但是我不能把它转换成laravel eloquent…

查询:

选择tbl1。*from (select *from DemoTable ORDER BY ShippingDate DESC LIMIT 20→ORDER BY RAND() LIMIT 5;

可以使用此代码。更改模型和列的模型和列。我为测试

编写了一个用户
return User::query()
->whereIn('id', function($query)
{
$query->from('users')
->selectRaw('id')
->orderByDesc('created_at')->limit(20);
})->inRandomOrder()->limit(5)->get();

如果你得到toSql()你会看到

select * from `users` where `id` in (select id from `users` order by `created_at` desc limit 20) limit 5