Выборка случайных записей RAND(), но с определенным распределением
Всем привет!
А вот такую штуку ни не делал?
Допустим, есть 100 записей в базе, с полем дата, от 2010 до 2019 года.
Мне нужно вывести 10 случайных из них, но так, чтобы у свежих записей был приоритет, их должно быть больше, особенно в начале этой выборки.
К примеру я должен получить записи за 2018, 2019, 2016, 2012, 2019, 2017, 2014, 2015, 2016, 2010 года.
С одной стороны хочу показать случайные записи, а с другой, не хочу показывать старые, особенно в первой половине выборки.
В голову приходит только сделать штуки 3 случайные выборки за 2019-2017, 2016-2014, 2014-2010 года и объединить их.
А вот такую штуку ни не делал?
Допустим, есть 100 записей в базе, с полем дата, от 2010 до 2019 года.
Мне нужно вывести 10 случайных из них, но так, чтобы у свежих записей был приоритет, их должно быть больше, особенно в начале этой выборки.
К примеру я должен получить записи за 2018, 2019, 2016, 2012, 2019, 2017, 2014, 2015, 2016, 2010 года.
С одной стороны хочу показать случайные записи, а с другой, не хочу показывать старые, особенно в первой половине выборки.
В голову приходит только сделать штуки 3 случайные выборки за 2019-2017, 2016-2014, 2014-2010 года и объединить их.
Комментарии: 5
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
какую надо?Даже сформулировать тяжело. Вероятнее всего да, нужно самому сформировать список id Объектов, а потом уже их сами и выбирать через pdoResources или что удобнее.
Спасибо. Хотя здесь может быть ситуация, когда свежий записей в выборке не будет…
Можно вот так закрепить вот так
Или сделать еще один запрос сюда, но, дописать sortby по дате публикации, напр. и выводить 2 самые свежие, или отобрать через where рандомные, но опубликованные в этом году
Конечно, лучше все это дело вынести в свой сниппет и сделать всю эту выборку одним getCollection, я думаю. Но выводить нужно набор id и их уже сортировать, иначе вряд ли получится