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

come randomizzare il recupero della domanda dal database?

Puoi usare LIMIT m,n per limitare il numero di risultati che ottieni e compensare i risultati di un determinato importo.

Ora potresti fare qualcosa come:

 SELECT * FROM questions WHERE QuizID=1 LIMIT $page,5;

Dove calcoli la $page basato su un $_GET variabile. Ma questo non risolverà la tua casualità.

Puoi sempre eseguire il seeding di RAND($key) da una determinata chiave che salvi nella tua sessione in modo da poter ORDER BY RAND($key) e usa la tecnica del limite superiore.

Probabilmente il modo più semplice da implementare sarebbe ottenere l'intero set di risultati, mescolarlo e memorizzarlo nella cache. Quindi usa un php per mostrare solo un pezzo specifico della cache.

Poiché questo è correlato all'impaginazione. Lascia che te lo dica, LIMIT m,n potrebbe non essere veloce come sembra. Scopri come migliorarlo e ulteriori informazioni su Impaginazione efficiente con MySQL