Sacar registros aleatorios con PHP/MySQL (función Rand() en mysql)
Bienvenidos a VerTutoriales.com, en esta ocasión y continuando con la programación de Dk Web, necesitaba sacar unos registros aleatorios para el escaparate de mi tienda, aunque podreis ordenar aleatoriamente los registros para cualquier cosa, incluso si necesitais para alguna aplicación ociosa como puede ser un juego, para ello utilizaremos la función Rand() de mysql.
Pero veamos como podemos hacer tal operación ya que en realidad es un parámetro más en nuestra consulta SELECT y no conlleva ninguna complicación.
Ya sabemos que para realizar una consulta utilizamos la siguiente forma:
SELECT * FROM tabla
Además, si queremos hacer una pequeña criba, tambien podemos añadirle el WHERE y condicionar la selección de registros de la siguiente manera:
SELECT * FROM tabla WHERE Tutorial = “Random en mysql”
Pero si quisieramos sacar todos los Tutoriales que fueran de forma aleatoria, tendríamos que ordenarlos de forma que utilizaremos Rand() para conseguirlo:
SELECT * FROM tabla WHERE TemaTutorial = “MySQL” ORDER BY RAND()
En esta última sentencia lo que estamos haciendo es sacar todos los campos que tengan como TemaTutorial el valor “MySQL” los recoja y luego los ordene de forma aleatoria con el Order by Rand(), de esta manera he conseguido que el escaparate de la tienda vaya mostrando cada vez que entren unos artículos diferentes ¿y vosotros para qué lo necesitais?
Comments
a mi me gustaría obtener registros aleatorios para aplicar exámenes donde las preguntas no salgan en el mismo orden, para aplicar distintos evaluaciones con una misma batería de preguntas
Buen uso Carlos
Precisamente con esta consulta SQL puedes tomar los registros que quieras y que te los saque de forma aleatoria para el uso de preguntas en exámenes o en mi caso era para el escaparate de una tienda online 😉 Al poder hacer la consulta atacando también con un Where, conseguimos la versatilidad de MySQL y además añadiendo cierto “azar” a la consulta 😉
Un saludo y gracias por comentar!
Gracias por tu pronta respuesta, intentare realizar la instrucción!
Te dejo un ejemplo por si te ayuda en tu query de MySQL
SELECT * FROM TablaDePreguntas WHERE Tema = 1 ORDER BY RAND();
En este caso traigo todas las preguntas de la tabla de preguntas que sean del tema 1 y las “ordendo” de forma aleatoria 😉
Un saludo!
hola buenas tardes pero como aplicaria las preguntas y respuestas con un chebo utilizando php y mylsq
No sé que es un “chebo”, pero supongo que las preguntas las puedes sacar de forma aleatoria, o si es un tipo test, las respuestas sacarlas aleatorias siempre y cuando dejes la pregunta correcta claro :). Me explicas más en profundidad tu duda? 😀
Holaa, yo lo utilizare para realizar un algoritmo que me permita realizar 20 registros distintos !! alguna idea?
Pues sin más información, poca idea tengo 😀