Тъй като можете да подадете начален параметър към RAND()
функция, можете да "пагинирате" произволните резултати, като генерирате начално число преди първата страница.
Примерен код:За първата страница (зависи от езика):
int seed = Math.abs(new Random().nextInt());
SQL заявка:
SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;
Съхранявайте семето някъде (за уеб-базирани приложения можете да използвате URL параметър или сесия). За следващите страници:
SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;
Забележка:Сортиране по RAND()
е тежка операция, може би е по-добре да съхранявате индексирана колона с хеш кода на URL адреса, след което да използвате базирани на модули или други произволни функции.