如何随机更新表。因此,您为列指定一个随机值。并且列(在示例中为"top"(是唯一的。如果您在数字 10 到 20 之间进行选择,并且您有 10 行,则不能有不使用的数字。如果你有
Test table
-Id- -Top-
0 0
1 0
2 0
3 0
随机更改列"top"(1 到 4(
Test table
-Id- -Top-
0 4
1 1
2 3
3 2
如果我使用PHP,它会很慢。但是MySQL很快。 我不使用 SELECT,因为我还需要保存答案。 谁能帮我?多谢。
Mysql: 5.7.22
PHP: 7.2.7
我使用 Mysql PDO lib for PHP。
如果只想为行任意赋值一个序列号,可以使用变量:
set @rn := 0;
update t
set top = (@rn := @rn + 1)
order by rand();
赋值看起来是连续的,但order by rand()
意味着值插入到随机行上。 所有数字都是唯一的,因为它们是连续的。