Поскольку вы можете передать параметр seed в функцию RAND()
, вы можете «разбить» на случайные результаты, генерируя seed перед первой страницей.
Пример кода: для первой страницы (зависит отязык):
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-адреса, а затем использовать модуль илидругие случайные функции.