如何通过归因于随机值来更新表格?我希望将列isOnline
id | name | isOnline
1 | johndoe | 1
2 | janedoe | 1
3 | marydoe | 0
4 | teendoe | 0
5 | babydow | 1
查询
UPDATE users
SET isOnline = rand(int)
WHERE isOnline='1' OR isOnline='0';
答案 0 :(得分:2)
RAND()
生成0到1之间的随机浮点数。你想要的只是生成0到1之间的整数(即0 OR 1)。这应该可以解决问题:
FLOOR(RAND() * 2)
这是一个概念验证SQLfiddle:http://sqlfiddle.com/#!9/b62a0/1
p / s:实际上,生成n< = integer<范围内的整数的实际方法我是这样的:
FLOOR(n + (RAND() * m))
然而,由于n = 0且m = 2,我们可以将其简化为:
FLOOR(0 + (RAND() * 2))
或:
FLOOR(RAND() * 2)