如何随机更新表。因此,您可以为列指定一个随机值。并且该列(在示例中为“顶部”)是唯一的。而且,如果您在10到20的数字之间进行选择,并且有10行,那么您就不会有未使用的数字。如果有
Test table
-Id- -Top-
0 0
1 0
2 0
3 0
随机更改“顶部”列(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用于PHP。
答案 0 :(得分:1)
如果您只想为行任意分配一个序列号,则可以使用变量:
set @rn := 0;
update t
set top = (@rn := @rn + 1)
order by rand();
赋值看起来是顺序的,但是order by rand()
表示将值插入随机行中。所有数字都是唯一的,因为它们是连续的。