首页 > 解决方案 > 在 mySQL 中查询以随机顺序从每个“目的”11 中选择 44 个问题 PHP/Laravel

问题描述

我有一张桌子,我必须从 4 个不同类别的每个类别 11 中以随机顺序获取问题。

像这样:从“问题”中选择 * 限制为 44 个,其中 11 个来自每个“目的”,以随机顺序排列。该表如下所示:

在此处输入图像描述

到目前为止我所做的是:

$questions = Question::take(44)->inRandomOrder()->get();

但它只得到 44 个问题,其中某些类别比其他类别获得更多。

标签: phpmysqllaravel

解决方案


$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();

推荐阅读