Aangezien u een seed-parameter kunt doorgeven aan de RAND()
functie kunt u de willekeurige resultaten "pagineren" door een seed te genereren voor de eerste pagina.
Voorbeeldcode:Voor de eerste pagina (verschilt per taal):
int seed = Math.abs(new Random().nextInt());
SQL-query:
SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;
Sla de seed ergens op (voor webgebaseerde toepassingen kunt u een url-parameter of sessie gebruiken). Voor de volgende pagina's:
SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;
Opmerking:sorteren op RAND()
een zware operatie is, kunt u beter een geïndexeerde kolom opslaan met de hashcode van de url, dan een module-gebaseerde of andere willekeurige functies gebruiken.