Mostrar registros aleatorios

En tiendas virtuales es muy utilizado poner en página principal algún bloque de productos destacados o en oferta. Si tenemos muchos de estos productos y solo queremos mostrar un número considerable para no sobrecargar la página es un efecto interesante poder mostrar dichos productos de forma aleatoria.

Existe una sentencia SQL que nos permite realizar consultas aleatorias. Es sencilla de utilizar y muy útil.

Por ejemplo podríamos hacer lo siguiente:

SELECT nombre, precio FROM productos ORDER BY RAND() LIMIT 0,10

Esta sentencia SQL recuperaría de nuestra base de datos el nombre y el precio de los 10 últimos productos de la tabla productos obtenidos de forma aleatoria.

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(3 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

5 respuestas a “Mostrar registros aleatorios”

  1. buenos días José; mi nombre es Alexis Salomon, pero quiero saber como hago para poder seleccionar un registro aleatorio en una tabla pero basado en un tiempo de terminado, es decir poder colocar un tiempo de localización de registro en 30 segundos y luego de que pase los 30 segundos pues elija un registro. Todo esto desde que le de clic a un botón llamado búsqueda..

    • Jose Aguilar dice:

      Hola buenas tardes,

      Existen varias soluciones para satisfacer tu requerimiento. Una de ellas es jugar con la función date() de php para controlar los segundos para elegir otro registro. Quizá otra opción es hacer una query con RAND()

      Saludos

  2. Juan dice:

    Estimado y como hago en este caso: Tengo 300 oficinas (CodOf) y cada una de estas tiene 100 contratos (NroContrato) y deseo aleatoriamente seleccionar 3 contratos de cada oficina. Cual sería la estructura del query..Gracias

    • Jose Aguilar dice:

      Hola buenos días,

      En tu caso te interesa fijarte en la parte final de la query del ejemplo:

      BY RAND() LIMIT 0,10

      Lo debes añadir al final de tu query pero para 3 contratos:

      BY RAND() LIMIT 0,3

      Saludos

  3. Waneta Sowa dice:

    Only a smiling visitor here to share the love (:, btw great layout.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre