在 Windows 7 上使用 MySQL 5.6.21。
我正在尝试从按日期播种的表中返回“随机”行(因此当天返回同一行,然后在第二天切换等 - 如果您愿意,可以使用“当天生成器的随机报价”)。
我注意到相同的行不断出现,因此我将查询简化为基础,看起来 RAND() 函数每四个种子值生成非常相似的数字。当四舍五入为整数时,这些值似乎每四个种子重复一次。这个例子只使用了 16 行,但你明白了。
create table t (i INT);
insert into t values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15);
select i, ceil(rand(i) * 16), rand(i) from t;
drop table t;
给...
0 3 0.15522042769493574
1 7 0.40540353712197724
2 11 0.6555866465490187
3 15 0.9057697559760601
4 3 0.15595286540310166
5 7 0.40613597483014313
6 11 0.6563190842571847
7 15 0.9065021936842261
8 3 0.15668530311126755
9 7 0.406868412538309
10 11 0.6570515219653505
11 15 0.907234631392392
12 3 0.15741774081943347
13 7 0.40760085024647497
14 11 0.6577839596735164
15 15 0.9079670691005579
不是我所期望的,所以我做错了什么?我希望生成一个伪随机序列。