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?

Te puede interesar:

6 comentarios

  • carlos commented on 28 octubre, 2014 Reply

    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

    • videotutoriales commented on 29 octubre, 2014 Reply

      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!

  • Carlos commented on 29 octubre, 2014 Reply

    Gracias por tu pronta respuesta, intentare realizar la instrucción!

  • videotutoriales commented on 29 octubre, 2014 Reply

    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!

  • mabel commented on 4 agosto, 2017 Reply

    hola buenas tardes pero como aplicaria las preguntas y respuestas con un chebo utilizando php y mylsq

    • Carlos Dk commented on 11 agosto, 2017 Reply

      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? 😀

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *