Laravel Query Builder从100k +行返回空行

时间:2016-08-10 23:40:30

标签: php mysql laravel

我的用户表有超过100K行。我需要将它们全部取出以用于导出目的。但是,当我使用以下代码时,它不会返回任何内容。但是,如果我申请限制,那么它将返回它们。它基本上返回10K行,当我提供20K的限制时,它不会返回任何内容。如果我使用 mysqli_query ,它会在同一服务器和数据库中返回所有内容。

$myRows = DB::table('users')->get();//returns empty
$myRows = DB::table('users')->take(10000);//returns 10,000 rows
$myRows = DB::table('users')->take(20000);//returns empty

我是Laravel的新手。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

我认为chunking (scroll to "Chunking Results From A Table" point)在这里是个不错的选择。

DB::table('users')->chunk(10000, function($users) {
    //some connect code
});