MySQL UPDATE随机数介于1-3之间

时间:2013-02-14 00:06:05

标签: mysql random numbers between

有一个大表,我想添加一个列,每列都有一个随机选择的数字。 1,2或3。

很难过。有什么想法吗?

3 个答案:

答案 0 :(得分:114)

试试这个:

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

来自RAND的MySQL documentation

  

返回0< = v<范围内的随机浮点值v。 1.0。

因此,在上面的查询中,1 + RAND()*3可以生成的最大值为3.999999,当被覆盖时将给出3.当RAND()返回0时,将出现最小值,在这种情况下,这将给出1。

答案 1 :(得分:5)

使用RAND()功能。它返回范围0 <= v < 1.0中的随机浮点值v。要获取i <= R < j范围内的随机整数R,请使用表达式FLOOR(i + RAND() * (j − i + 1))。例如,要获取范围1<= R < 3范围内的随机整数,请使用以下语句:

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

N.B: RAND()生成0到1的随机浮点值。

答案 2 :(得分:-3)

这样做

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