如何随机更新表格?

时间:2017-06-28 21:21:20

标签: mysql random

如何通过归因于随机值来更新表格?我希望将列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';

1 个答案:

答案 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)