RAND関数(乱数を生成する)

MySQL で RAND 関数を使用すると 0 以上 1.0 未満 の範囲内でランダムな浮動小数点値を生成することができます。ここでは MySQL における RAND 関数の使い方について解説します。

(Last modified: )

RAND 関数の使い方

RAND 関数は 0 <= v < 1.0 の範囲内で、ランダムな浮動小数点値 v を生成するために使用します。書式は次の通りです。

RAND([N])

省略可能な引数 N を指定した場合シード値として使用されます。同じシード値を指定した場合、同じ順番で同じ乱数が生成されます。

なお生成される乱数は 0 <= v < 1.0 の範囲内でランダムな浮動小数点値 v です。これを i <= R < j の範囲内でランダムな整数 R を得るようにするには次のように記述してください。

FLOOR(i + RAND() * (j ? i))

例えば 10 以上 20 未満の乱数を生成するには次のように記述します。

FLOOR(10 + RAND() * 10)

FLOOR 関数については「FLOOR関数 (指定した値以下の最小の整数を取得する)」を参照されてください。

-- --

それでは実際に試してみます。次のようなテーブルを作成しました。

create table randtest(num float);

MySQL/RAND 関数の使い方(1)

テーブルに次のようにデータを追加します。

insert into randtest values(rand());
insert into randtest values(rand());
insert into randtest values(rand());
insert into randtest values(rand());
insert into randtest values(rand());

MySQL/RAND 関数の使い方(2)

randtest テーブルからデータを取得します。

select * from randtest;

MySQL/RAND 関数の使い方(3)

0 以上 1 未満のランダムな値がテーブルに格納されていることが確認できました。

-- --

rand 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。