Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Função MySQL RAND() – Gerar um número aleatório no MySQL


No MySQL, o RAND() função permite que você gere um número aleatório. Especificamente, a função retorna um valor de ponto flutuante aleatório v no intervalo 0 <= v < 1.0 .

Você também pode influenciar o número aleatório fornecendo um valor de semente como argumento.


Sintaxe


A sintaxe fica assim:
RAND([N])

Onde N é um valor de semente opcional que você pode usar para influenciar o resultado.

Exemplo 1 – Sem argumentos


Aqui está um exemplo básico para demonstrar o que acontece quando não fornecemos um argumento.
SELECT RAND();

Resultado:
+--------------------+
| RAND()             |
+--------------------+
| 0.4335442291885095 |
+--------------------+

O resultado não é uma constante – será diferente cada vez que você o executar.

Aqui está um exemplo do que acontece quando executamos vários RAND() funções juntos.
SELECT 
  RAND() 'Result 1',
  RAND() 'Result 2',
  RAND() 'Result 3';

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

Exemplo 2 – Usando um valor inicial


Conforme mencionado, você pode passar um argumento para determinar o valor da semente. Isso permite que você influencie a saída da função.
SELECT RAND(5);

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

Nesse caso, a função retornará o mesmo valor todas as vezes se um valor de argumento igual for fornecido.
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 |
+---------------------+---------------------+---------------------+

Exemplo 3 – Usando RAND() como parte de uma expressão


Você pode usar o RAND() funcionam como parte de uma expressão.
SELECT RAND()*10;

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

Exemplo 4 – Retornando um número inteiro aleatório entre dois números


Você pode combinar o RAND() função com o FLOOR() função para retornar um inteiro aleatório entre dois números.

Veja como gerar um inteiro entre 5 e 10 (inclusive).
SELECT FLOOR(RAND()*(10-5+1)+5);

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

Vamos executar o mesmo código várias vezes para ver os resultados variados.
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 |
+----------+----------+----------+