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

kar*_*al8 39 mysql random numbers between

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

很难过.有任何想法吗?

Rab*_*bie 120

试试这个:

UPDATE tableName SET columnName = FLOOR( 1 + RAND( ) *3 );
Run Code Online (Sandbox Code Playgroud)

从MySQL 文档RAND:

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

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

  • 每行会有一个新的随机值,还是对它们都使用相同的值? (2认同)

Fai*_*sal 8

使用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);
Run Code Online (Sandbox Code Playgroud)

注意: RAND()产生从0到1的随机浮点值。