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