【问题标题】:MySQL UPDATE with random number between 1-3MySQL UPDATE 随机数在 1-3 之间
【发布时间】:2013-01-29 17:05:31
【问题描述】:

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

很难过。有什么想法吗?

【问题讨论】:

标签: mysql random numbers between


【解决方案1】:

使用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);

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    来自 MySQL documentationRAND

    返回 0

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

    【讨论】:

    • 每一行会有一个新的随机值,还是对它们都使用相同的值?
    • @luckydonald 它为每一行生成一个新的随机数。
    • 如果我想根据随机值有条件地更新另一列怎么办?有没有办法使用 SET @myRandom = FLOOR(1+RAND()*3) ?我的意思是在一个查询中。
    【解决方案3】:

    这样做

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-19
      • 2014-06-23
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      相关资源
      最近更新 更多