大きなテーブルがあり、レコードごとにランダムに選択された番号を持つ列を追加したいと考えています。1、2、または 3。
苦労しています。何か案は?
これを試して:
UPDATE tableName SET columnName = FLOOR( 1 + RAND( ) *3 );
のMySQLドキュメントからRAND
:
範囲 0 <= v < 1.0 のランダムな浮動小数点値 v を返します。
したがって、上記のクエリでは、によって生成される最大値は1 + RAND()*3
で3.999999
あり、floored の場合は 3 になります。最小値は がRAND()
0 を返す場合に発生し、この場合は 1 になります。
RAND()関数を使用します。範囲 のランダムな浮動小数点値 v を返します0 <= v < 1.0
。範囲内の乱数 R を取得するには、次i <= R < j
の式を使用しますFLOOR(i + RAND() * (j − i + 1))
。たとえば、 range の範囲のランダムな整数を取得するに1<= R < 3
は、次のステートメントを使用します。
UPDATE tableName
SET ColumnName= FLOOR(1 + rand() * 3);
注意: RAND()は、0 から 1 までのランダムな float 値を生成します。