MariaDB RAND() 函数使用指南

在 MariaDB 中,RAND() 是一个内置函数,它返回一个 0 (包含) 和 1 (不包含) 之间的随机数。

MariaDB RAND() 语法

这里是 MariaDB RAND() 函数的语法:

RAND()
RAND(seed)

参数

seed
可选的。产生随机数的种子。如果提供了 seedRAND(seed) 函数将产生一个可重复的随机数序列。

如果您提供了错误数量的参数,MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'RAND'

返回值

MariaDB RAND() 函数返回一个 0 (包含) 和 1 (不包含) 之间的随机数。

如果您提供了参数 seed,MariaDB RAND(seed) 函数将产生一个可重复的随机数序列。

RAND() 返回的是 0 和 1 之间的随机小数,如果你想返回其他区间(比如 mn)的随机数,请使用以下公式:

  • mn 之间的随机数: RAND() * (n - m) + m
  • mn 之间的随机整数: FLOOR(RAND() * (n - m + 1) + m)

MariaDB RAND() 示例

返回 0 和 1 之间的随机数

SELECT
    RAND(),
    RAND(),
    RAND(),
    RAND()\G

输出:

RAND(): 0.24013628460479555
RAND(): 0.9220884246026058
RAND(): 0.8900332999322873
RAND(): 0.6839012565872644

返回 10 和 20 之间的随机数

SELECT
    RAND() * (20 - 10) + 10,
    RAND() * (20 - 10) + 10,
    RAND() * (20 - 10) + 10,
    RAND() * (20 - 10) + 10\G

输出:

RAND() * (20 - 10) + 10: 17.494064138731048
RAND() * (20 - 10) + 10: 16.95328330337376
RAND() * (20 - 10) + 10: 12.284224408012093
RAND() * (20 - 10) + 10: 10.56127243727564

返回 10 和 20 之间的随机整数

SELECT
    FLOOR(RAND() * (20 - 10 + 1) + 10),
    FLOOR(RAND() * (20 - 10 + 1) + 10),
    FLOOR(RAND() * (20 - 10 + 1) + 10),
    FLOOR(RAND() * (20 - 10 + 1) + 10)\G

输出:

FLOOR(RAND() * (20 - 10 + 1) + 10): 16
FLOOR(RAND() * (20 - 10 + 1) + 10): 18
FLOOR(RAND() * (20 - 10 + 1) + 10): 12
FLOOR(RAND() * (20 - 10 + 1) + 10): 19

种子

带有种子的 MariaDB RAND() 函数返回一个可重复的随机数序列:

SELECT
    RAND(5),
    RAND(5),
    RAND(5)\G

输出:

RAND(5): 0.40613597483014313
RAND(5): 0.40613597483014313
RAND(5): 0.40613597483014313

结论

在 MariaDB 中,RAND() 是一个内置函数,它返回一个 0 (包含) 和 1 (不包含) 之间的随机数。