2013-02-14 7 views
27

大きなテーブルがあり、レコードごとにランダムに選択された番号の列を追加します。 1,2,3のいずれかを選択します。ランダムな数字のMySQL UPDATE 1-3

苦労しました。何か案は?

+5

にランダムな浮動小数点値を生成する[あなたは何を試してみましたか? ](http://www.whathaveyoutried.com/)[ask advice](http://stackoverflow.com/questions/ask-advice)をご覧ください。 –

+0

http://stackoverflow.com/questions/6550155/mysql-get-a-random-value-between-two-values – sgeddes

+0

あなたは 'UPDATE'と' RAND() 'を試していませんか? – tadman

答えて

98

このお試しください:RANDのためのMySQL documentationから

UPDATE tableName SET columnName = FLOOR(1 + RAND() *3); 

を:

は範囲0 < = V < 1.0のランダムな浮動小数点値vを返します。

そこで上記のクエリでは、 1 + RAND()*3によって生成することができる最大値は3を与える床の場合 RAND()戻り0が、その場合には、これは1を与えるときに最小値が生じる 3.999999であろう。

-3

この

UPDATE tableName SET columnName = FLOOR(RAND() + RAND()); 
0

RAND()関数を使用しています。 0 <= v < 1.0の範囲のランダムな浮動小数点値vを返します。 i <= R < jの範囲の乱数Rを得るには、式FLOOR(i + RAND() * (j − i))を使用します。たとえば、範囲内の範囲1<= R < 3をランダムな整数を得るために、次の文を使用します。

UPDATE tableName 
SET ColumnName= FLOOR(1 + rand() * 3); 

NB:RAND()は0から1