@KarambyG

Какой необходимо составить запрос mysql для генератора случайного поста по рейтингу?

Подскажите плиз, как сделать генерацию СЛУЧАЙНЫХ постов на основе их рейтингов?
Например у меня есть 1000 постов, должно из БД на страницу вывестись один СЛУЧАЙНЫЙ пост, при этом, шансы вывестись на страницу больше у того, чей рейтинг больше.

На сколько я понимаю по такому принципу работают тик-ток, инстаграм, ютуб и тд. Хочу сделать чтото подобное в плане логики.
  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Akina
Сетевой и системный админ, SQL-программист.
Ну типа так.
WITH cte AS (
    SELECT *, SUM(rating) OVER (ORDER BY id) cum_rating
    FROM table
)
SELECT
FROM cte t1
JOIN (SELECT RAND() * MAX(cum_rating) rnd_rating
      FROM cte) t2 ON t2.rnd_rating BETWEEN t1.cum_rating - t1.rating AND t1.cum_rating

Реально, конечно, не BETWEEN, а два неравенства, по верхней границе - строгое.
Ответ написан
Ваш ответ на вопрос

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

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