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徹底入門 第4版 MySQL 8.0対応
¥3,762 (2025-04-25 08:32 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)MySQL徹底入門 第5版 MySQL 8.4 LTS対応
¥4,620 (2025-04-21 05:28 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)MySQL運用・管理[実践]入門 〜安全かつ高速にデータを扱う内部構造・動作原理を学ぶ
¥3,018 (2025-04-25 16:00 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)2011-06-02