mysqlkumao 发表于 2008-2-8 13:50:22

请教rand()函数的问题

1. rand()函数生成的随机数是不是在大于0小于等于1的范围内?
2. 随机种子有什么用?对生成的随机数有什么效果?任何数字都可以做随机种子吗?
谢谢!

mysqlkumao 发表于 2008-2-11 15:54:40

麻烦哪位说一下啊!
:(

edwin_chen 发表于 2008-2-13 10:42:54

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:30

赞:victory:

mysqlkumao 发表于 2008-2-13 17:50:29

谢谢!
Very Good !

boxman 发表于 2008-2-15 10:37:51

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。
eg:

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

可以在0-1000之间出一个随机值

mysqlkumao 发表于 2008-2-22 09:14:02

:)
页: [1]
查看完整版本: 请教rand()函数的问题