MySQL – Listar registros aleatorios

Hay dos maneras de crear aleatorios de una búsqueda en Mysql: la primera hacer la consulta y posteriormente con PHP trabajar el aleatorio, o como vamos a ver, listaremos los registros aleatorios directamente desde MySQL.

Tutorial MySql

Devolver un número aleatorio en el resultado

Este sería el sencillo código para devolver un número aleatorio en cada fila:

SELECT nombre, RAND() FROM usuarios;

Devolvería el nombre junto a un número aleatorio de cada usuario. de este modo, podríamos asignar un número aleatorio a cada usuario para poder luego trabajarlo.

Orden aleatorio de registros

Otro usu, sería que MySQL liste un determinado número de registros aleatoriamente. Ejemplo:

En una tabla ‘jugadores’ tenemos los datos de los jugadores, entre los que está los minutos jugados, goles, tarjetas amarillas… vamos las estadísticas del jugador.

Ahora nos interesa listar 3 jugadores aleatorios que hayan marcado mas de 10 goles. La sentencia sería:

$sql = "SELECT * FROM jugadores WHERE goles > 10 ORDER BY RAND() LIMIT 3";

Si os fijáis, en el ORDER BY añadimos el RAND() que se encargará de escoger aleatoriamente los registro del resultado final. Con el LIMIT 3, le estamos diciendo que coja 3.

Espero que con estos dos ejemplos os sea de utilidad para trabajar con registros aleatorios en mysql. Si lo podemos hacer directamente en Mysql, nos ahorrará mucho trabajo y no tendremos que pelearnos con PHP.


Más información