2013年12月4日水曜日

[PostgreSQL][MySQL]整数の乱数

http://nejimakitori-chronicle.seoid.net/%E7%A7%81%E4%BA%8B/postgresqlmysql%E6%95%B4%E6%95%B0%E3%81%AE%E4%B9%B1%E6%95%B0/

MySQL絡みで、ある範囲の整数の乱数を取得するサンプルを探していたら、
リファレンスに載っていた。
灯台もと暗しとはこういうことですね。
MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 7.5.2 数学関数
i <= R < j の範囲のランダムな整数 R を取得するには、式 FLOOR(i + RAND() * (j – i)) を使用します。
たとえば、7 <= R < 12 の範囲にあるランダムな整数を得るには、次のステートメントを使うことができます

1SELECT FLOOR(7 + (RAND() * 5));
余談だけど、
こんなことも書いていた。
WHERE 節内の RAND() は、WHERE が実行されるたびに再評価されますのでご注意ください。

キャッシュされていると思いきや、再評価されるんですね。
気をつけておかないと。。。


0 件のコメント:

コメントを投稿