MySQL intレコードにランダム整数を一括挿入してみた

mysql_int_random
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に収まらないからですね。

では、5~20のランダム整数ならどうなるでしょうか?
という算数ですね。
一年に一回は使いたくなりそうなのでメモ!

関連トピック

Text

PHPエラー対処方法「RSSをXML取得時に不正文字が存在する場合」

PHPでRSSをsimplexml_load_stringなどを使って解析する場合に不正な文字が含まれている時に発生するエラー対処方法の

indent

インデントはタブとスペースのどっちを使うべきなのか?

コーディングをする皆様。インデントを今日もせっせと打っていらっしゃりますか? さて、そのインデントを打つ時にタブ派とスペース派に分かれ

Download

PHPで画像ダウンロードのボタンでリンクする方法

PHPを利用して画像をダウンロードさせるボタンを作成する方法メモです。 リンクボタンをクリックすると保存ダイアログが表示されて、ダウン

Yesterday

PHPのdate関数で日付「昨日・明日・1時間前」を取得しよう!

PHPのdate関数を使えば自分の取得したい日付を1行でズバッと指定できます。 もう簡単すぎて、プログラムというよりは言葉で伝えてあげ

Random

MySQLのrand()ランダム関数の負荷問題を考えてみる

MySQLで結構使う場面が多いランダム関数rand()ですが、間違った指定をするとデータベースに思わぬ負荷をかけることになります。 今

no-copy

ガラケーで画像やデコメを再配布不可など「ファイル制限あり」にする方法

ガラケーで画像の転送不可設定をする方法についてのまとめです。 コピー制限・保存制限・画面メモ制限・キャプチャ制限などの対策と方法です。

yahoo_dev

Yahoo!デベロッパーネットワークAPI 画像検索

検索API提供終了 有料版を含む検索APIが終了してしまいました・・・。 APIを利用したウェブアプリケーションのリスクですね。

mysql_limit_pf

MySQLのlimitで大量データのパフォーマンスが遅い重い!

MySQLのlimitを使用した場合、オフセット部分が増えるとパフォーマンスが低下する場合の対処方法メモ。 データベースからlimit

Comment

  1. 匿名 より:

    最後の式で10が出力されることはありますか?

公開日:2013/12/17