Как каждый 5-й элемент в базе помечать Is_visible = 1?

В общем имеется таблица `tb_participant`
с такими полями:
uid = XXX XXX XXX XX
is_winner = true/false

И вот пытаюсь понять как правильно помечать каждого 5-го участника, допустим, в период с 13:00 по 13:30
пришли 4 участника, то следующего (5го) надо пометить is_winner = true

Массив не подходит, т.е. как я не могу понять в каком порядке берутся записи из бд,
Есть вариант запроса вроде $model->find()->orderBy('id'=>SORT_ASC), и исходя из этого каждому пятому присваивать значение true. Вариант страшный, т.к. с каждым участником, будет дергаться вся база уникалов (в час более 5000 новых уникалов приходит) и тормозить система.

Есть советы? кто нибудь решал подобное?
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
one_day
@one_day
сделай табличку с count
при каждом заходе count++
когда = 5 присваиваем тру
и count обнуляем
и все по новой
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@isrofilov
Есть вариант запроса вроде $model->find()->orderBy('id'=>SORT_ASC),

Если есть поле id можно использовать PDO::lastInsertId (mysqli_insert_id)
Ответ написан
Ваш ответ на вопрос

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

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