我想用给定集合中的随机值更新我的表,而不是从另一个表。
e.g。 value1,value2,value3
和MySQL查询应该更新上述值的所有记录。
我正在寻找类似类型的解决方案,但是使用给定集合中的随机字符串值: Update column with random value
答案 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);
答案 2 :(得分:4)
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() 为每一行获取一个随机数。
Update dbo.Employees
Set City= (Case abs(checksum(NewId()) % 3)
WHEN 0 THEN 'Lndon'
WHEN 1 THEN 'New York'
WHEN 2 THEN 'Paris'
END
);