MySQL查询为每一行分配一个唯一的随机数

11 mysql random

我希望在我的表中附加一列,它将是从顺序列表=行数中的随机数.

因此,如果我的表有999行,那么数字1到999将被随机且唯一地分配.

现在,我想我可以添加一个虚拟的TempRandomColumn = Rand(),按此排序并使用PHP按顺序添加数字.但这意味着999个MySQL语句.

有没有办法使用单个MySQL语句执行此操作?

谢谢你的任何指示.

Qua*_*noi 25

SET @r := 0;
UPDATE  items2
SET     author_id = (@r := @r + 1)
ORDER BY
        RAND()
Run Code Online (Sandbox Code Playgroud)