MySQLのテーブル hoge の intカラム test に10までの整数をランダムに挿入してみました。
範囲指定や上限の変更も簡単だったので、再配置や振り分けで使える予感。
ちょっとした算数を用いれば、好みの範囲での指定も簡単ですよ。
SPONSORED LINK
RAND関数を使う
素敵な一行です。
UPDATE hoge SET test = ROUND(RAND()*10)
まず、RAND()関数で 0~1.0 の範囲の小数乱数を作成します。
実際には「0.1423…」「0.5761…」「0.9871…」といった数値が乱数で作られます。
それを10倍して整数化していきます。
「1.423…」「5.761…」「9.871…」といった感じに。
さらにROUND()関数を使用して小数点以下を丸めてint型に合わせます。
ROUND関数は四捨五入なので、
「1」「6」「10」
結果的にMySQLカラムtestには0~10までのランダムな整数が挿入されます。
最小値を1にしてみる
ちなみに0~ではなく、1~とする場合には、
ROUND(1+RAND()*9)
このような式が出来上がります。
なぜ9倍か?
必ず+1されるので、生成する乱数はMAX9でないと1~10に収まらないからですね。
Vdomus
まとめ
最後に、5~20のランダム整数ならどうなるでしょうか?という算数を考えて見て下さい。
一年に一回は使いたくなりそうなのでメモ!
今日も知識欲は止まらない。
コメント
最後の式で10が出力されることはありますか?