Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Função MySQL RAND()

A função `RAND()` do MySQL gera um número de ponto flutuante aleatório entre 0 e 1. É comumente usado para criar valores aleatórios ou selecionar registros aleatórios de um banco de dados.

Uso

A função `RAND()` é usada quando há necessidade de introduzir aleatoriedade, como embaralhar resultados ou gerar IDs aleatórios. Ele pode ser chamado com ou sem um valor de semente opcional para produzir uma sequência determinística de números aleatórios.

RAND([seed])

Nessa sintaxe, `RAND()` retorna um número aleatório. O fornecimento de uma `[semente]` gerará uma sequência repetível de números aleatórios, consistente na mesma sessão ou contexto. Observe que diferentes versões e configurações do MySQL podem tratar as sementes de forma ligeiramente diferente.

Exemplos

1. Geração de um número aleatório

SELECT RAND();

Este exemplo gera um número aleatório entre 0 e 1 cada vez que a consulta é executada, produzindo números diferentes sem uma semente.

2. Geração de um número aleatório com uma semente

SELECT RAND(10);

Aqui, `RAND()` usa o valor de semente 10, produzindo o mesmo número aleatório todas as vezes na mesma sessão, o que é útil para fins de teste.

3. Seleção de registros aleatórios

SELECT * 
FROM products 
ORDER BY RAND() 
LIMIT 5;

Essa consulta recupera 5 linhas aleatórias da tabela `products`, usando `RAND()` para embaralhar a ordem dos resultados.

Dicas e práticas recomendadas

  • Use sementes para reprodutibilidade. Utilize valores de semente durante o teste para obter números aleatórios consistentes na mesma sessão.
  • Seja cauteloso com grandes conjuntos de dados. O uso de `ORDER BY RAND()` em tabelas grandes pode consumir muitos recursos; considere métodos alternativos, como adicionar uma coluna com valores aleatórios pré-gerados ou usar uma técnica de amostragem para obter melhor desempenho.
  • Limite as seleções aleatórias. Sempre use `LIMIT` ao selecionar registros aleatórios para evitar o processamento excessivo de dados.
  • Evite usar RAND() para fins criptográficos. Ele não é adequado para aplicativos seguros ou funções criptográficas. Considere usar funções como `UUID()` do MySQL para gerar identificadores exclusivos ou confiar em bibliotecas externas para aleatoriedade criptográfica.
  • Entenda a precisão. O número aleatório gerado por `RAND()` é um número de ponto flutuante entre 0 e 1 com precisão dupla, o que é crucial para aplicativos em que a precisão é importante.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça