sql >> Base de Datos >  >> RDS >> Mysql

Función MySQL RAND():generar un número aleatorio en MySQL

En MySQL, RAND() La función le permite generar un número aleatorio. Específicamente, la función devuelve un valor de punto flotante aleatorio v en el rango 0 <= v < 1.0 .

También puede influir en el número aleatorio proporcionando un valor inicial como argumento.

Sintaxis

La sintaxis es así:

RAND([N])

Donde N es un valor semilla opcional que puede usar para influir en el resultado.

Ejemplo 1:sin argumentos

Aquí hay un ejemplo básico para demostrar lo que sucede cuando no proporcionamos un argumento.

SELECT RAND();

Resultado:

+--------------------+
| RAND()             |
+--------------------+
| 0.4335442291885095 |
+--------------------+

El resultado no es una constante:será diferente cada vez que lo ejecutes.

Aquí hay un ejemplo de lo que sucede cuando ejecutamos múltiples RAND() funcionan juntas.

SELECT 
  RAND() 'Result 1',
  RAND() 'Result 2',
  RAND() 'Result 3';

Resultado:

+--------------------+---------------------+---------------------+
| Result 1           | Result 2            | Result 3            |
+--------------------+---------------------+---------------------+
| 0.9413559538697414 | 0.40614711251682334 | 0.20666773170853753 |
+--------------------+---------------------+---------------------+

Ejemplo 2:uso de un valor semilla

Como se mencionó, puede pasar un argumento para determinar el valor inicial. Esto le permite influir en la salida de la función.

SELECT RAND(5);

Resultado:

+---------------------+
| RAND(5)             |
+---------------------+
| 0.40613597483014313 |
+---------------------+

En este caso, la función devolverá el mismo valor cada vez si se proporciona un valor de argumento igual.

SELECT 
  RAND(5) 'Result 1',
  RAND(5) 'Result 2',
  RAND(5) 'Result 3';

Resultado:

+---------------------+---------------------+---------------------+
| Result 1            | Result 2            | Result 3            |
+---------------------+---------------------+---------------------+
| 0.40613597483014313 | 0.40613597483014313 | 0.40613597483014313 |
+---------------------+---------------------+---------------------+

Ejemplo 3:uso de RAND() como parte de una expresión

Puedes usar RAND() función como parte de una expresión.

SELECT RAND()*10;

Resultado:

+-------------------+
| RAND()*10         |
+-------------------+
| 8.148973517258627 |
+-------------------+

Ejemplo 4:devolución de un entero aleatorio entre dos números

Puede combinar RAND() función con el FLOOR() función para devolver un entero aleatorio entre dos números.

Aquí se explica cómo generar un número entero entre 5 y 10 (inclusive).

SELECT FLOOR(RAND()*(10-5+1)+5);

Resultado:

+--------------------------+
| FLOOR(RAND()*(10-5+1)+5) |
+--------------------------+
|                        7 |
+--------------------------+

Ejecutemos el mismo código varias veces para ver los diferentes resultados.

SELECT 
  FLOOR(RAND()*(10-5+1)+5) 'Result 1',
  FLOOR(RAND()*(10-5+1)+5) 'Result 2',
  FLOOR(RAND()*(10-5+1)+5) 'Result 3';

Resultado:

+----------+----------+----------+
| Result 1 | Result 2 | Result 3 |
+----------+----------+----------+
|        7 |        9 |        6 |
+----------+----------+----------+