Poiché puoi passare un parametro seed a RAND()
funzione, puoi "impaginare" i risultati casuali generando un seme prima della prima pagina.
Codice di esempio:per la prima pagina (varia in base alla lingua):
int seed = Math.abs(new Random().nextInt());
Query SQL:
SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;
Archivia il seme da qualche parte (per le applicazioni basate sul Web puoi utilizzare un parametro url o una sessione). Per le pagine successive:
SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;
Nota:ordinamento per RAND()
è un'operazione pesante, è meglio memorizzare una colonna indicizzata con il codice hash dell'URL, quindi utilizzare un modulo o altre funzioni casuali.