webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg

Какой наиболее простой способ получить случайное значение в Yii2?

Допустим есть запрос:
$model = Post::find()->andWhere(['fignya'=>'1'])->all();

Как проще и менее ресурсозатратно получить одну случайную запись?
  • Вопрос задан
  • 1117 просмотров
Решения вопроса 3
@AlexGx
Yii2 developer, business analytics
ORDER BY RAND ресурсозаратная вещь, рекомендую ознакомится MySQL оптимизация: ORDER BY RAND()
Ответ написан
Комментировать
webinar
@webinar Автор вопроса, куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Пока сам нашел такой:
$model = Post::find()->andWhere(['fignya'=>'1'])->orderBy('RAND()')->one()

Есть варианты менее ресурсозатратные?
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Не используйте ORDER BY RAND() это очень ресурсоемкая операция.
Как правило, дешевле выполнить 2 запроса:
* выбрать N id-шников
* на стороне php выбрать произвольный из них
* получить запись из бд по этому id
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы