Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment randomiser la récupération de la question de la base de données ?

Vous pouvez utiliser LIMIT m,n à la fois limiter le nombre de résultats que vous obtenez et compenser les résultats d'un montant donné.

Maintenant, vous pouvez faire quelque chose comme :

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

Où vous calculez la $page basé sur un $_GET variable. Mais cela ne résoudra pas votre caractère aléatoire.

Vous pouvez toujours semer RAND($key) par une clé donnée que vous enregistrez dans votre session afin que vous puissiez ORDER BY RAND($key) et utilisez la technique de limite ci-dessus.

Le plus simple à mettre en œuvre serait probablement d'obtenir l'ensemble des résultats, de le mélanger et de le mettre en cache. Utilisez ensuite un php pour afficher uniquement une partie spécifique du cache.

Puisque cela est lié à la pagination. Laissez-moi vous dire que LIMIT m,n n'est peut-être pas aussi rapide qu'il n'y paraît. Apprenez à l'améliorer et en savoir plus sur Une pagination efficace avec MySQL