使用给定字符串值集中的随机值更新表

时间:2014-06-24 04:43:59

标签: mysql random

我想用给定集合中的随机值更新我的表,而不是从另一个表。

e.g。 value1,value2,value3

和MySQL查询应该更新上述值的所有记录。

我正在寻找类似类型的解决方案,但是使用给定集合中的随机字符串值: Update column with random value

4 个答案:

答案 0 :(得分:14)

我会使用elt()函数:

update table t
    set col = elt(floor(rand()*3) + 1, 'value1', 'value2', 'value3');

elt()从列表中选择一个特定元素。 rand()生成一个随机值。

答案 1 :(得分:8)

使用floor(rand()*3)生成0,1和2之间的随机数,然后使用case when分配值

update test
set i = (case floor(rand()*3) 
         when 0 then 0 
         when 1 then 10 
         when 2 then 20 
         end);

fiddle

答案 2 :(得分:4)

尝试使用CEILRAND功能

UPDATE `table`
SET `column`=(CASE CEIL(RAND()*3)
              WHEN 1 THEN 'value1'
              WHEN 2 THEN 'value2'
              WHEN 3 THEN 'value3'
          END);

答案 3 :(得分:0)

Rand() 为给定调用中的所有行返回相同的值。使用 newid() 为每一行获取一个随机数。

https://web.archive.org/web/20071228004107/http://articles.techrepublic.com.com/5100-10878_11-6089823.html

Update dbo.Employees 
Set City= (Case abs(checksum(NewId()) % 3)
        WHEN 0 THEN 'Lndon'
        WHEN 1 THEN 'New York'
        WHEN 2 THEN 'Paris'
    END
        );