
MySQL tiene un conjunto de funciones integradas en el propio lenguaje para diversas finalidades. Entre ellas está la función rand() que, si sueles usar otros lenguajes de programación, podrás imaginar que se usa para generar números aleatorios.
Así, si quieres probar dicha función, simplemente ejecuta la siguiente consulta varias veces, y verás como en cada ejecución el resultado cambia aleatoriamente:
1 | mysql > SELECT rand() FROM dual; |
Esta consulta mostrará un número aleatorio entre 0 y 1 cada vez que la ejecutes.
1 2 3 4 5 | ... 0.9561223899536975 0.2797636848685925 0.6964967257310606 ... |
Esta función rand() nos es bastante útil si queremos que los resultados arrojados por alguna consulta en SQL sean aleatorios. Por ejemplo, imagina que queremos mostrar, cada vez que un usuario visite nuestra web, uno de los comentarios que cualquier otro usuario ha realizado sobre la misma. Es decir, entre todos los comentarios que tenemos guardados en la base de datos MySQL, obtendríamos uno al azar, y para ello, podríamos usar la función rand() del propio lenguaje de la siguiente forma:
1 | mysql > SELECT * FROM comentarios ORDER BY rand() LIMIT 1; |
Con esto, estaríamos obteniendo solo un resultado, ya que hemos limitado la consulta (LIMIT 1), de todos los comentarios de nuestra tabla. Y además, estaríamos obteniendo uno al azar ya que hemos realizado un ORDER BY rand(), por lo que en cada ejecución de dicha consulta obtendríamos un registro distinto.
Todo dependerá, claro está, del número de registros que tengamos en la tabla en cuestión, en este caso en la de comentarios, ya que si son pocos, es posible que en diferentes ejecuciones se repitan los mismos registros o comentarios.
