在 MariaDB 中生成随机数
本文讨论如何在 MariaDB 中使用 RAND()
函数生成随机数。
发布于
MariaDB 提供了一个 RAND()
函数用于生成 0 (包含) 和 1 (不包含) 之间的随机数。
通常,我们需要生成两个指定的数之间的随机数或者随机整数。我们可以利用数据表达式做到这一点。
公式
如果你想返回介于 m
和 n
之间随机数,请使用以下公式:
m
和n
之间的随机数:RAND() * (n - m) + m
m
和n
之间的随机整数:FLOOR(RAND() * (n - m + 1) + m)
这里,我们用到了另外一个数学函数 FLOOR()
,此函数返回小于或等于指定数字的最大整数值。
下面有几个使用 RAND()
函数生成随机数的示例。
示例 1:生成一个 0 和 1 之间的随机数
要生成 0 和 1 之间的随机数,请直接使用 RAND()
,如下:
SELECT
RAND() rand1,
RAND() rand2,
RAND() rand3,
RAND() rand4;
输出:
+--------------------+---------------------+--------------------+--------------------+
| rand1 | rand2 | rand3 | rand4 |
+--------------------+---------------------+--------------------+--------------------+
| 0.6890435821274702 | 0.16652111910890893 | 0.7654748798957792 | 0.3278110728858142 |
+--------------------+---------------------+--------------------+--------------------+
1 row in set (0.000 sec)
示例 2:生成介于 10 和 20 之间的随机数
下面的语句生成 4 个介于 10 和 20 之间的随机数:
SELECT
RAND() * (20 - 10) + 10 rand1,
RAND() * (20 - 10) + 10 rand2,
RAND() * (20 - 10) + 10 rand3,
RAND() * (20 - 10) + 10 rand4;
输出:
+--------------------+--------------------+--------------------+--------------------+
| rand1 | rand2 | rand3 | rand4 |
+--------------------+--------------------+--------------------+--------------------+
| 13.426307554753784 | 17.297205894530943 | 16.207107115729812 | 19.143918202392683 |
+--------------------+--------------------+--------------------+--------------------+
1 row in set (0.002 sec)
示例 3:生成介于 10 和 20 之间的随机整数
下面的语句生成 4 个介于 10 和 20 之间的随机整数:
SELECT
FLOOR(RAND() * (20 - 10 + 1) + 10) rand1,
FLOOR(RAND() * (20 - 10 + 1) + 10) rand2,
FLOOR(RAND() * (20 - 10 + 1) + 10) rand3,
FLOOR(RAND() * (20 - 10 + 1) + 10) rand4;
输出:
+-------+-------+-------+-------+
| rand1 | rand2 | rand3 | rand4 |
+-------+-------+-------+-------+
| 17 | 18 | 19 | 10 |
+-------+-------+-------+-------+
1 row in set (0.001 sec)
结论
本文讨论了如何在 MariaDB 中使用 RAND()
函数生成随机数。