MySQL RAND函数
时间:2019-02-04 12:52:42 来源:igfitidea点击:
本MySQL教程通过语法和示例说明了如何使用MySQL RAND函数。
描述
MySQL RAND函数用于返回一个随机数。
语法
MySQL中RAND函数的语法为:
RAND( [seed] )
seed可选的。如果提供seed值, 它将在每次产生一个可重复的随机数序列。
说明
- RAND函数将返回一个介于0(包含)和1(不包含)之间的值,因此值> = 0且值<1。
- 如果没有提供种子seed值,则RAND函数将返回一个完全随机的数字。
- 每次使用特定种子值时,RAND函数将返回可重复的随机数序列。 即执行两次得到的结果是一样。
随机小数范围
要在两个值(范围)之间生成一个随机的数,可以使用以下公式:
SELECT RAND()*(b-a)+a;
其中a是您要为其生成随机数的最小数,b是最大数。
例如:
SELECT RAND()*(25-10)+10;
上面的公式将生成一个大于等于10并且小于25的随机数。(注意:永远不会返回值25,因为随机函数永远不会返回1。)
生成指定范围的随机整数
要在两个值(包括范围)之间生成一个随机整数,可以使用以下公式:
SELECT FLOOR(RAND()*(b-a+1))+a;
其中a是您要为其生成随机数的最小数,b是最大数。
例如:
SELECT FLOOR(RAND()*(25-10+1))+10;
上面的公式将生成一个10到25之间(包含10和25)的随机整数。
示例
随机数的例子
-- 结果是随机的 0到1之间 mysql> SELECT RAND(); Result: 0.2430297417966926 mysql> SELECT RAND(9); Result: 0.406868412538309 -- 两次seed一样,得到的结果是一样的,不同机器也一样 mysql> SELECT RAND(9); Result: 0.406868412538309 mysql> SELECT RAND(-5); Result: 0.9043048842850187
获取指定范围内的随机小数
生成一个随机的值,该值大于等于1并且小于10:
-- 没有指定seed,所以每次不一样 mysql> SELECT RAND()*(10-1)+1; Result: 3.71321560508871 -- 种子9的随机值 不同机器也一样 mysql> SELECT RAND(9)*(10-1)+1; Result: 4.6618157128448 mysql> SELECT RAND(-5)*(10-1)+1; Result: 9.1387439585652
随机整数范围的示例
生成一个介于20和30之间的随机整数值:
mysql> SELECT FLOOR(RAND()*(30-20+1))+20; Result: 27 mysql> SELECT FLOOR(RAND(9)*(30-20+1))+20; Result: 24 mysql> SELECT FLOOR(RAND(-5)*(30-20+1))+20; Result: 29