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

问题描述 投票:34回答:3

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

很难过。有任何想法吗?

mysql random numbers between
3个回答
113
投票

试试这个:

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

来自MySQL documentationRAND

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

所以在上面的查询中,1 + RAND()*3可以生成的最大值是3.999999,当它被覆盖时会给出3.当RAND()返回0时会出现最小值,在这种情况下,这将给出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的随机浮点值。


-3
投票

做这个

UPDATE tableName SET columnName = FLOOR(RAND( ) + RAND( ));
© www.soinside.com 2019 - 2024. All rights reserved.