В MySQL, RAND()
функцията ви позволява да генерирате произволно число. По-конкретно, функцията връща произволна стойност с плаваща запетая v в диапазона 0 <= v < 1.0
.
Можете също да повлияете на произволното число, като предоставите начална стойност като аргумент.
Синтаксис
Синтаксисът е така:
RAND([N])
Където N
е незадължителна начална стойност, която можете да използвате, за да повлияете на резултата.
Пример 1 – Без аргументи
Ето основен пример, който да демонстрира какво се случва, когато не предоставим аргумент.
SELECT RAND();
Резултат:
+--------------------+ | RAND() | +--------------------+ | 0.4335442291885095 | +--------------------+
Резултатът не е константа – той ще бъде различен всеки път, когато го стартирате.
Ето пример за това какво се случва, когато изпълним няколко RAND()
функционира заедно.
SELECT RAND() 'Result 1', RAND() 'Result 2', RAND() 'Result 3';
Резултат:
+--------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +--------------------+---------------------+---------------------+ | 0.9413559538697414 | 0.40614711251682334 | 0.20666773170853753 | +--------------------+---------------------+---------------------+
Пример 2 – Използване на начална стойност
Както споменахме, можете да предадете аргумент, за да определите началната стойност. Това ви позволява да влияете на изхода на функцията.
SELECT RAND(5);
Резултат:
+---------------------+ | RAND(5) | +---------------------+ | 0.40613597483014313 | +---------------------+
В този случай функцията ще връща една и съща стойност всеки път, ако е предоставена еднаква стойност на аргумента.
SELECT RAND(5) 'Result 1', RAND(5) 'Result 2', RAND(5) 'Result 3';
Резултат:
+---------------------+---------------------+---------------------+ | Result 1 | Result 2 | Result 3 | +---------------------+---------------------+---------------------+ | 0.40613597483014313 | 0.40613597483014313 | 0.40613597483014313 | +---------------------+---------------------+---------------------+
Пример 3 – Използване на RAND() като част от израз
Можете да използвате RAND()
функция като част от израз.
SELECT RAND()*10;
Резултат:
+-------------------+ | RAND()*10 | +-------------------+ | 8.148973517258627 | +-------------------+
Пример 4 – Връщане на произволно цяло число между две числа
Можете да комбинирате RAND()
функция с FLOOR()
функция за връщане на произволно цяло число между две числа.
Ето как да генерирате цяло число между 5 и 10 (включително).
SELECT FLOOR(RAND()*(10-5+1)+5);
Резултат:
+--------------------------+ | FLOOR(RAND()*(10-5+1)+5) | +--------------------------+ | 7 | +--------------------------+
Нека стартираме един и същ код няколко пъти, за да видим различните резултати.
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';
Резултат:
+----------+----------+----------+ | Result 1 | Result 2 | Result 3 | +----------+----------+----------+ | 7 | 9 | 6 | +----------+----------+----------+