我有一个大型数据库,有 50000 多行,我试图获取所有行,但例如跳过每 50 行。
我从 Laravel 文档中尝试了这个:偏移和限制
$users = DB::table('users')->skip(10)->take(5)->get();
但这只会跳过前 10 行并获取接下来的 5 行。我找不到解决此问题的 Eloquent 解决方案。
之前有人解决过这个问题吗?
最佳答案
使用原始查询解决:
return DB::select(DB::raw('
SELECT dateTime, row1, row2
FROM (
SELECT @row := @row +1 AS rownum, dateTime, row1, row2
FROM (
SELECT @row :=0
) r, users
) ranked
WHERE rownum % 50 = 0'));
这是比 @disf.asia 建议更快的解决方案。
关于mysql - Laravel Eloquent 每隔 N 行跳过一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29260948/