MariaDB社区

标题: 请教rand()函数的问题 [打印本页]

作者: mysqlkumao    时间: 2008-2-8 13:50
标题: 请教rand()函数的问题
1. rand()函数生成的随机数是不是在大于0小于等于1的范围内?
2. 随机种子有什么用?对生成的随机数有什么效果?任何数字都可以做随机种子吗?
谢谢!
作者: mysqlkumao    时间: 2008-2-11 15:54
麻烦哪位说一下啊!

作者: edwin_chen    时间: 2008-2-13 10:42
rand()函数返回一个随机的浮点数 x,x大于等于0,小于等于1。
rand(N)用于产生重复序列,N必须是整数(当然如果你输入浮点数,会自动被转换成整数而不会报错)。
例如:

mysql>  SELECT RAND(1);
+------------------+
| RAND(1)          |
+------------------+
| 0.40540353712198 |
+------------------+
1 row in set (0.00 sec)
mysql>  SELECT RAND(1);
+------------------+
| RAND(1)          |
+------------------+
| 0.40540353712198 |
+------------------+
1 row in set (0.00 sec)
mysql>  SELECT RAND(1.1);
+------------------+
| RAND(1.1)        |
+------------------+
| 0.40540353712198 |
+------------------+
1 row in set (0.00 sec)
mysql>  SELECT RAND(2);
+------------------+
| RAND(2)          |
+------------------+
| 0.65558664654902 |
+------------------+
1 row in set (0.00 sec)
mysql>  SELECT RAND(2);
+------------------+
| RAND(2)          |
+------------------+
| 0.65558664654902 |
+------------------+
1 row in set (0.00 sec)
mysql>  SELECT RAND(2.1);
+------------------+
| RAND(2.1)        |
+------------------+
| 0.65558664654902 |
+------------------+
1 row in set (0.00 sec)
mysql>  SELECT RAND(2.2);
+------------------+
| RAND(2.2)        |
+------------------+
| 0.65558664654902 |
+------------------+
1 row in set (0.00 sec)
作者: kider    时间: 2008-2-13 11:16

作者: mysqlkumao    时间: 2008-2-13 17:50
谢谢!
Very Good !
作者: boxman    时间: 2008-2-15 10:37
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。
eg:

select floor(0+rand()*1001));

可以在0-1000之间出一个随机值
作者: mysqlkumao    时间: 2008-2-22 09:14





欢迎光临 MariaDB社区 (http://123.56.88.72/) Powered by Discuz! X3.2