Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL RAND() Функция – Генериране на произволно число в MySQL

В 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 |
+----------+----------+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL COALESCE() Обяснено

  2. SQL:избиране на редове, където стойността на колоната е променена от предишния ред

  3. Какво точно означава набор от знаци и съпоставяне?

  4. грешка по време на изпълнение:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

  5. Възможно ли е да се посочи една колона като множество външни ключове?