MySQLでRANDOMな数値を得る方法

MySQLでたまにやりたいことの一つに「一定の範囲の数値でランダムな値を作りたい」というのがあります。 データを挿入する場合だったり、SELECTで取り出す際にランダムに取り出すとかね。

結論から言うと、利用する関数は「RANDOM」ではなくて「RAND」を使います。 これで0~1.0までの乱数を作ってくれます。

SELECT RAND();

~から~までの範囲でランダムな整数を生成する

次に実用的なテクニックとして、一定の範囲、たとえば100~150までの間でランダムな整数を生成してみましょう。

四捨五入(ROUND)を利用する

MySQLには四捨五入のROUND関数があるので、これをRAND関数と組み合わせます。 常に100以上ですから100を加算するのは絶対として、変化する幅をRANDと150-10=50で表現します。

SELECT ROUND( RAND() * 50 + 100 );

これで100~150までの乱数が生成できます。 変化させたい幅をRAND関数と掛け合わせるところがポイントですね。

実践ハイパフォーマンスMySQL 第2版 [大型本]
実践ハイパフォーマンスMySQL 第2版 [大型本]

このページをシェアする

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

2011-06-02