mysql - Laravel Eloquent 每隔 N 行跳过一次

标签 mysql laravel laravel-4 eloquent laravel-5

我有一个大型数据库,有 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/

相关文章:

mysql - Grails/Groovy - 返回 Map 中的 MySQL 记录仅保留最后一条记录

mysql - 如何检查 MySQL 数据库备份是否过时

php - Codeigniter 选择和(有条件的)更新查询

mysql - 外键限制可以带来安全利益和/或风险吗?

php - 有什么办法可以解决我的 Eloquent 吗?时间太长

php - App::singleton 和 bindShared 有什么区别?

laravel - Tailwind css 文件非常大 2.42 mib 我如何使用 laravel 减小这个文件的大小?

php - Eloquent - 使用唯一的字符串或唯一的 int 作为 id

PHP 5.3.2 在匿名函数中使用 $this 的替代方案?

php - 使用现有数据库数据将不可空列添加到 laravel 迁移