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関数と掛け合わせるところがポイントですね。
2011-06-02