MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのRAND()関数を同じクエリ内で2回呼び出すと、乱数は毎回異なる値になるのか?

MySQLのRAND()関数は、0以上1未満の範囲からランダムな浮動小数点値を返す関数です。ここで重要なポイントは、シード(種)を指定せずに同じクエリ内でRAND()関数を複数回呼び出した場合、その都度異なる乱数が生成されるという点です。

実際にどのような挙動になるのか、以下の例で確認してみましょう。

実行例

mysql> Select RAND(), RAND(), Rand();
+--------------------+-------------------+--------------------+
| RAND()             | RAND()            | Rand()             |
+--------------------+-------------------+--------------------+
| 0.9402844448949066 | 0.911499003797303 | 0.7366417150354402 |
+--------------------+-------------------+--------------------+
1 row in set (0.00 sec)

上記の結果セットを見ると、同じSELECT文の中で3回RAND()関数を呼び出していますが、返ってきた値はすべて異なることがわかります。つまり、RAND()関数は呼び出されるたびに新しい乱数を生成するのです。

補足:シードを指定した場合の挙動

一方、RAND()関数に引数としてシード値を渡した場合(例:RAND(5))、同じシード値を使えば常に同じ乱数列が再現されます。テストデータの作成などで再現性が必要な場面では、このシード指定が役立ちます。

  1. C++でループ内に毎回異なる乱数を生成する方法

    C++で乱数を生成する方法について解説します。ここでは、0から指定した上限値までの範囲で乱数を生成します(このプログラムでは最大値を100としています)。srand()関数とはループ内で異なる乱数を得るためには、srand()関数を使用します。これはC++の標準ライブラリ(<cstdlib>)に含まれる関数で、void srand(unsigned int seed) という形式を持ち、rand()関数が利用する擬似乱数生成器のシード(種)を設定する役割を担います。srand()関数の宣言は以下の通りです。void srand(unsigned int seed)引数には「seed

  2. ExcelのROUND関数で数値を丸める方法|四捨五入をわかりやすく解説

    Excelで資料を見やすく整えたいとき、数値を小数点以下や整数単位で丸めると、ぐっと読みやすくなります。数値を丸めるということは、重要度の低い桁を取り除くことを意味します。その結果、必要な精度を保ちながら、より見栄えの良い値に仕上げることができます。 丸め処理は、概算を示したり、数値を扱いやすくしたりする目的でよく使われます。たとえば、割引率を計算して「17.3587563」という数値が出た場合、小数第1位で丸めれば「17.4%」となり、はるかに見やすくなります。この記事では、ROUND関数を使って数値を丸める方法を詳しくご紹介します。 ExcelのROUND関数とは ROUND関数は、Ex