48

有一张大桌子,我想为每条记录添加一个随机选择的数字的列。1、2 或 3。

过得很艰难。有任何想法吗?

4

3 回答 3

137

尝试这个:

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

来自MySQL文档RAND

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

因此,在上面的查询中,可以生成的最大值1 + RAND()*33.999999,当取底时会给出 3。当返回 0 时会出现最小值RAND(),在这种情况下会给出 1。

于 2013-02-14T01:01:36.670 回答
13

使用RAND()函数。它返回 range 中的随机浮点值 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);

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

于 2017-03-06T08:34:19.110 回答
-2

做这个

UPDATE tableName SET columnName = FLOOR(RAND( ) + RAND( ));
于 2014-10-06T04:46:00.407 回答