Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вероятностный вывод товаров по приоритетам / 3 сообщений из 3, страница 1 из 1
14.03.2020, 14:32
    #39937400
cu2netzov4n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вероятностный вывод товаров по приоритетам
Всем здоровья!)

Есть товары с приоритетами, структура таблицы такая:
авторid | product_id | priority
__|__________|_______
1 | 354 | 12
2 | 457 | 9
3 | 789 | 9
4 | 690 | 1
5 | 101 | 1
6 | 120 | 1


Причем товары более приоритетные не в 100% случаев будут идти в списке первыми.
Т.е. товар 354 с приоритетом 12 , должен преимущественно выходит в списке первым, но изредка (например в 1 из 6 случаев) должен пропускать вперед товары с более низким приоритетом 9 и т.д.

Помогите придумать sql запрос чтобы получать список с вероятностной сортировкой.

Я попробовал сделать сортировку на основе вычисляемого приоритета. Т.е. приоритет товара делится на секунды из текущего времени и округляю то целого. Не делю только приоритеты равные 1, чтобы не плодить вычисляемые приоритеты равные 0 .

авторSELECT DISTINCT *, CAST( if(pp.priority > 1, pp.priority / MOD(SECOND(NOW()) ,10), 1) as INT) as mod_priority
FROM products_priority pp
ORDER BY mod_priority DESC, RAND() LIMIT 20

В итоге товар с наибольшим приоритетом все равно первый.

Как лучше реализовать в sql>?
...
Рейтинг: 0 / 0
14.03.2020, 14:45
    #39937403
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вероятностный вывод товаров по приоритетам
cu2netzov4n
Помогите придумать sql запрос чтобы получать список с вероятностной сортировкой.

Круто
Код: sql
1.
ORDER BY priority * RAND()


Более мягко
Код: sql
1.
ORDER BY SQRT(priority) * RAND()


Ещё мягче
Код: sql
1.
ORDER BY LOG(priority) * RAND()


(а также LOG2 и LOG10).
...
Рейтинг: 0 / 0
14.03.2020, 15:20
    #39937408
cu2netzov4n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вероятностный вывод товаров по приоритетам
Akina, благодарю !
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вероятностный вывод товаров по приоритетам / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]