Original post: http://anothermysqldba.blogspot.com/2014/06/mysql-random-integers.html
Esta não é uma característica nova, por qualquer meio, mas é uma pergunta que eu tenho acontecer para ver aparecer de vez em quando. Assim, um exemplo rápido é seguinte.
Para gerar um número aleatório dentro do MySQL você pode utilizar o piso e as funções de Rand. Os MySQL documentos manuais esta aqui: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html # function_rand
" Para obter um número inteiro R aleatório no intervalo i <= R <j, use a expressão FLOOR (i + RAND () * (j - i)) "
Então, para dar um exemplo:
Para gerar um número aleatório dentro do MySQL você pode utilizar o piso e as funções de Rand. Os MySQL documentos manuais esta aqui: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html # function_rand
" Para obter um número inteiro R aleatório no intervalo i <= R <j, use a expressão FLOOR (i + RAND () * (j - i)) "
Então, para dar um exemplo:
> SET @I = 3; # lower range
> SET @J = 43 - @I; # max range minus lower range
> SELECT FLOOR( @I + (RAND() * @J )) as lottery_numbers\G
*************************** 1. row ***************************
lottery_numbers: 4
1 row in set (0.00 sec)
> SELECT FLOOR( @I + (RAND() * @J )) as lottery_numbers\G
*************************** 1. row ***************************
lottery_numbers: 8
1 row in set (0.00 sec
> SELECT FLOOR( @I + (RAND() * @J )) as lottery_numbers\G
*************************** 1. row ***************************
lottery_numbers: 15
1 row in set (0.00 sec
> SELECT FLOOR( @I + (RAND() * @J )) as lottery_numbers\G
*************************** 1. row ***************************
lottery_numbers: 16
1 row in set (0.00 sec
> SELECT FLOOR( @I + (RAND() * @J )) as lottery_numbers\G
*************************** 1. row ***************************
lottery_numbers: 23
1 row in set (0.00 sec
> SELECT FLOOR( @I + (RAND() * @J )) as lottery_numbers\G
*************************** 1. row ***************************
lottery_numbers: 42
1 row in set (0.00 sec