MySQL絡みで、ある範囲の整数の乱数を取得するサンプルを探していたら、
リファレンスに載っていた。
灯台もと暗しとはこういうことですね。
MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 7.5.2 数学関数
i <= R < j の範囲のランダムな整数 R を取得するには、式 FLOOR(i + RAND() * (j – i)) を使用します。
たとえば、7 <= R < 12 の範囲にあるランダムな整数を得るには、次のステートメントを使うことができます
1 | SELECT FLOOR(7 + (RAND() * 5)); |
こんなことも書いていた。
WHERE 節内の RAND() は、WHERE が実行されるたびに再評価されますのでご注意ください。
キャッシュされていると思いきや、再評価されるんですね。
気をつけておかないと。。。
0 件のコメント:
コメントを投稿