В этом учебном пособии вы узнаете, как использовать MySQL функцию RAND с синтаксисом и примерами.
Описание
MySQL функция RAND генерирует случайное число или случайное число в диапазоне.
Синтаксис
Синтаксис MySQL функции RAND:
Параметры или аргументы
seed - необязательный. Если указано, он будет генерировать повторяющуюся последовательность случайных чисел каждый раз, когда предоставляется начальное значение.
Примечание
- Функция RAND возвращает значение между 0 (включительно) и 1 (исключающее), поэтому значение> = 0 и значение <1.
- Функция RAND вернет полностью случайное число, если seed не будет предоставлено.
- Функция RAND будет возвращать повторяемую последовательность случайных чисел каждый раз, когда используется определенное начальное значение.
Диапазон случайных десятичных чисел
Чтобы создать случайное десятичное число между двумя значениями (диапазоном), можно использовать следующую формулу:
1 |
SELECT RAND()*(y-x)x; |
Где x - наименьшее число, а y - наибольшее число, для которого вы хотите создать случайное число.
1 |
SELECT RAND()*(15-10)10; |
Формула генерирует случайное десятичное число> = 10 и <15. (Примечание: эта формула никогда не вернет значение 15, потому что случайная функция никогда не вернет 1.)
Диапазон случайных целых чисел
Чтобы создать случайное целое число между двумя значениями (включая диапазон), вы можете использовать следующую формулу:
1 |
SELECT FLOOR(RAND()*(y-x1))x; |
Где x - наименьшее число, а y - наибольшее число, для которого вы хотите создать случайное число.
1 |
SELECT FLOOR(RAND()*(15-101))10; |
Формула генерирует случайное целое число от 10 до 15 включительно.
Применение
Функция RAND может использоваться в следующих версиях MySQL:
- MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23
Пример случайного числа
Рассмотрим, как использовать функцию RAND в MySQL для генерации случайного числа> = 0 и <1. Например:
1 2 3 4 5 6 7 8 9 10 11 |
mysql> SELECT RAND(); #Результат: 0.5873673098044165 mysql> SELECT RAND(7); #Результат: 0.9065021936842261 mysql> SELECT RAND(-3); #Результат: 0.40467110313910165 |
Хотя функция RAND вернет значение 0, она никогда не вернет значение 1. Оно всегда будет возвращать значение меньше 1.
Пример случайного десятичного диапазона
Рассмотрим, как использовать функцию RAND в MySQL для генерации случайного десятичного числа между двумя числами (диапазоном).
Например, следующее будет генерировать случайное десятичное значение, которое> = 1 и <15 (Примечание: оно никогда не вернет значение 10):
1 2 3 4 5 6 7 8 9 10 11 |
mysql> SELECT RAND()*(15-1)1; #Результат: 13.902919192708023 mysql> SELECT RAND(9)*(15-1)1; #Результат: 6.696157775536326 mysql> SELECT RAND(-5)*(15-1)1; #Результат: 13.660268379990262 |
Пример диапазона случайных чисел
Давайте рассмотрим, как использовать функцию RAND в MySQL для генерации случайного целочисленного числа между двумя числами (т.е. включающий диапазон).
Например, следующее будет генерировать случайное целое значение между 20 и 30:
1 2 3 4 5 6 7 8 9 10 11 |
mysql> SELECT FLOOR(RAND()*(30-201))20; #Результат: 29 mysql> SELECT FLOOR(RAND(9)*(30-201))20; #Результат: 24 mysql> SELECT FLOOR(RAND(-5)*(30-201))20; #Результат: 29 |