Da Sie einen Seed-Parameter an RAND()
übergeben können Funktion können Sie die Zufallsergebnisse "paginieren", indem Sie vor der ersten Seite einen Seed erzeugen.
Beispielcode:Für die erste Seite (variiert je nach Sprache):
int seed = Math.abs(new Random().nextInt());
SQL-Abfrage:
SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;
Speichern Sie den Seed irgendwo (für webbasierte Anwendungen können Sie einen URL-Parameter oder eine Sitzung verwenden). Für die nächsten Seiten:
SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;
Hinweis:Sortierung nach RAND()
eine schwere Operation ist, ist es möglicherweise besser, eine indizierte Spalte mit dem Hash-Code der URL zu speichern, als eine modulbasierte oder andere Zufallsfunktion zu verwenden.