Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Версия Laravel: 5.2
Версия PHP: 5.6.32
Вендор и версия сервера БД: MySQL ver. 5.5.56-MariaDB
Добрый день. Подскажите, пытаюсь сделать быструю (рандомную) выборку из базы и нужно соединять запросы. Возник вопрос, могу ли я соединить запросы и отправить запросы без начального. В конструкторе есть union(), но для него нужен "начальный" запрос.
$param = User::where('musical_direction', '!=', 0)->select(DB::raw('musical_direction, COUNT(users.id) as count'))->groupBy('musical_direction')->get();
foreach ($param as $item){
$offset = rand(0, $item->count-1);
if (isset($query)) {
$new_query = User::where('musical_direction', 1)->offset($offset)->limit(1)->select('name');
$query = $query->unionAll($new_query);
} else {
$query = $query2 = User::where('musical_direction', 1)->offset($offset)->limit(1)->select('name');
}
}
$result = $query->get();
Вот здесь, с помощью ifelse делаю "начальный запрос". Но может быть можно по-другому, без этого?
Не в сети
Страницы 1