sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo aleatorizar la recuperación de la pregunta de la base de datos?

Puedes usar LIMIT m,n tanto para limitar la cantidad de resultados que obtiene como para compensar los resultados por una cantidad determinada.

Ahora podrías hacer algo como:

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

Donde calculas la $page basado en un $_GET variable. Pero esto no resolverá tu aleatoriedad.

Siempre puedes sembrar RAND($key) por una clave dada que guardas en tu sesión para que puedas ORDER BY RAND($key) y usa la técnica del límite anterior.

Probablemente, lo más sencillo de implementar sería obtener el conjunto de resultados completo, mezclarlo y almacenarlo en caché. Luego use un php para mostrar solo una porción específica del caché.

Dado que esto está relacionado con la paginación. Déjame decirte que LIMIT m,n puede no ser tan rápido como parece. Descubre cómo mejorarlo y lea más sobre Paginación eficiente usando MySQL