sql >> Database teknologi >  >> RDS >> Mysql

hvordan man vælger tilfældige unikke poster ved hver udførelse af SQL-forespørgslen

Da du kan sende en startparameter til RAND() funktion, kan du "paginere" de tilfældige resultater ved at generere et frø før den første side.

Eksempelkode:For den første side (varierer efter sprog):

int seed = Math.abs(new Random().nextInt());

SQL-forespørgsel:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200;

Gem frøet et sted (for webbaserede applikationer kan du bruge en url-parameter eller en session). For de næste sider:

SELECT url FROM masterurls ORDER BY RAND({seed}) LIMIT 200 * {pageNumber}, 200;

Bemærk:Sortering efter RAND() er en tung operation, er det måske bedre at gemme en indekseret kolonne med webadressens Hash-kode og derefter bruge en modulbaseret eller andre tilfældige funktioner.



  1. Sådan løses Call to undefined function dbase_open() fejl i Windows

  2. SQL dataopdagelse og klassificering

  3. Alfanumerisk rækkefølge efter i Mysql

  4. I hvilken rækkefølge behandles ON DELETE CASCADE-begrænsninger?