Как перетасовать значения из бд

Рейтинг: 0Ответов: 1Опубликовано: 24.02.2015

Добрый день.
Нужно сделать пагинацию с рандомным значением людей.
Просто в sql rand указать не могу, т.к. один человек может попасть на несколько страниц.
Возможно ли как-то по дате/времени вывести рандомный список людей на странице или как-то ещё?
Спасибо

Ответы

▲ 4

Не совсем понятно для всех ли пользователей один и тот же порядок (рандомный) должен быть, не совсем понятно должен ли порядок меняться по F5, не совсем понятно должен ли порядок меняться завтра или первая страница для одного и того же пользователя должна быть фиксированной...

В любом случае в качестве начального решения можно сделать:

order by md5(id+$seed)

где $seed может быть подставлен так, что реализуется сразу для нескольких вариантов.

Скорость вычисления md5, понятное дело, затормозит выборку, и скорее всего существенно, поэтому следует подумать об альтернативах.