mysql - 我可以将偏移量(跳过)与 GroupBy 一起使用吗?

标签 mysql sql laravel laravel-5

下面是我的查询,我添加了一些我想要的描述。

$recommendedByVideoId = RecommendedVideo::selectRaw('video_id,id')
                ->orderBy('played_count', 'desc')
                ->orderBy('updated_at', 'desc')
                ->get()
                ->skip(3)
                ->take(2)
                ->groupBy('video_id')

下面是我的查询结果:

        [video_id_1] => [record1, record2, record3, record4, record5],
        [video_id_2] => [record1, record2, record3, record4, record5],
        [video_id_3] => [record1, record2, record3, record4, record5],
        [video_id_4] => [record1, record2, record3, record4, record5],
        [video_id_5] => [record1, record2, record3, record4, record5, record6, record7],

预期结果应该是这样的:

        [video_id_1] => [record4, record5],
        [video_id_2] => [record4, record5],
        [video_id_3] => [record4, record5],
        [video_id_4] => [record4, record5],
        [video_id_5] => [record4, record5],

请帮我写出查询,跳过内部集合而不是外部集合的记录。

谢谢。

最佳答案

这里已经在 statckoverflow skip frist row and take the rest 中回答了

所以要使用它,你必须使用 take 方法和 skip 因为有了偏移你就可以正确地给出数字。

所以首先获取count数据库中的行数。

$count = Model::count()

然后 $skip = 3 找到你提供给take方法limit $limit = $count - $skip 现在这是你的最终查询

Model::skip($skip)->take($limit)->get();

您也可以将它与 groupBy 一起使用

如果您不想更改您的查询,则无需skiptake 即可获取所有数据 并使用收集方法except

$data = $dataFromDataBase->except([0,1,2]);

它会自动从您的数据中删除给定的 key

关于mysql - 我可以将偏移量(跳过)与 GroupBy 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55822702/

相关文章:

mysql - mysql 分区查询语法错误

mysql - 使用多个 LIKE 语句和 REGEXP 的查询可以更有效吗?

javascript - 如何在 vue.js 和 laravel 中显示数组响应?

php - 尝试从Composer安装laravel时缺少PHP扩展zip

mysql - 如何查询每年的一系列日期?

php - 尝试将数据保存到数据库时如何解决数组到字符串的转换

mysql - 基本存储过程返回错误

sql - 谁能告诉我这个查询是否正确?

sql - 由于 ORDER BY 子句,Partition By Clause 给出了不同的结果

php - 基于 mysql 查询的报告生成