php - 在 mySQL 中查询以随机顺序从每个“目的”11 中选择 44 个问题 PHP/Laravel
问题描述
我有一张桌子,我必须从 4 个不同类别的每个类别 11 中以随机顺序获取问题。
像这样:从“问题”中选择 * 限制为 44 个,其中 11 个来自每个“目的”,以随机顺序排列。该表如下所示:
到目前为止我所做的是:
$questions = Question::take(44)->inRandomOrder()->get();
但它只得到 44 个问题,其中某些类别比其他类别获得更多。
解决方案
$questions = collect();
$questions = $questions->merge(Question::where('purpose', 'purpose-1')->take(11)->inRandomOrder()->get());
$questions = $questions->merge(Question::where('purpose', 'purpose-2')->take(11)->inRandomOrder()->get());
$questions = $questions->merge(Question::where('purpose', 'purpose-3')->take(11)->inRandomOrder()->get());
$questions = $questions->merge(Question::where('purpose', 'purpose-4')->take(11)->inRandomOrder()->get());
$questions = $questions->shuffle();
推荐阅读
- laravel - 表格中的提交按钮不起作用
- ssh - 无法远程连接到 digitalocean droplet - 不允许使用密码
- python - for循环python中的情节图例
- python - 如何在python中使用argv函数进行简单的添加
- html - positiong carousal @ 导航栏后面的顶部
- angular - 带有 3 个 or 子句和空对象的 NgIF
- javascript - 将本地插件添加到 CKEditor
- r - 替换中位数时不正确的 Rscript 工作
- java - 如何使用 JCache 注释 @CacheRemoveAll 清除多个缓存?
- odoo - 当 odoo11 中的 pos 中的重印收据按钮为真时,账单按钮不起作用