有一个大表,我想添加一个列,每列都有一个随机选择的数字。 1,2或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( ));