2

Windows 7 で MySQL 5.6.21 を使用しています。

日付でシードされたテーブルから「ランダムな」行を返そうとしています(したがって、同じ行が現在の日に返され、翌日などに切り替わります-必要に応じて「日のジェネレーターのランダムな引用」)。

同じ行が表示され続けることに気付いたので、クエリを基本に単純化しました。RAND() 関数は、4 つのシード値ごとに非常によく似た数値を生成するようです。整数に丸めると、値は 4 番目のシードごとに繰り返されるように見えます。この例では 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

私が期待したものとは違うので、何が間違っているのでしょうか? 疑似乱数シーケンスが生成されることを期待していました。

4

2 に答える 2