MySQL Tutorial MySQL Advanced MySQL Database Account Management MySQL References

MySQL RAND() Function



The MySQL RAND() function returns a random number between 0 (inclusive) and 1 (exclusive). The function returns a completely random number if no seed is provided. The function returns a repeatable sequence of random numbers, if seed is provided.

Syntax

RAND(seed)

Parameters

seed Optional. If seed is specified specified, the function returns a repeatable sequence of random numbers. If no seed is specified, it returns a completely random number

Return Value

Returns a random number between 0 (inclusive) and 1 (exclusive).

Example:

The example below shows the usage of RAND() function.

/* no seed value is provided,
  hence the result can vary */
mysql> SELECT RAND();
Result: 0.9147556348841224

/* 10 is provided as seed value */
mysql> SELECT RAND(10);
Result: 0.6570515219653505

/* 0 is provided as seed value */
mysql> SELECT RAND(0);
Result: 0.15522042769493574

Random Number in a given Range

The MySQL RAND() function can be used to create a random number between a given range. For example - to create a random number in a range [a, b), the following formula can be used:

SELECT RAND()*(b-a) + a;

Example:

In the example below, the RAND function is used to create a random number between a range [100, 200).

/* no seed value is provided,
  hence the result can vary */
mysql> SELECT RAND()*(200-100) + 100;
Result: 143.67012152790102

/* 10 is provided as seed value */
mysql> SELECT RAND(10)*(200-100) + 100;
Result: 165.70515219653504

/* 0 is provided as seed value */
mysql> SELECT RAND(0)*(200-100) + 100;
Result: 115.52204276949357

Random Integer in a given Range

The MySQL RAND() function can be used to create a random integer between a given range. For example - to create a random integer in a range [a, b), the following formula can be used:

SELECT FLOOR(RAND()*(b-a)) + a;

Example:

In the example below, the RAND function is used to create a random integer between a range [500, 600).

/* no seed value is provided,
  hence the result can vary */
mysql> SELECT FLOOR(RAND()*(600-500)) + 500;
Result: 533

/* 10 is provided as seed value */
mysql> SELECT FLOOR(RAND(10)*(600-500)) + 500;
Result: 565

/* 0 is provided as seed value */
mysql> SELECT FLOOR(RAND(0)*(600-500)) + 500;
Result: 515

❮ MySQL Functions