一尘不染

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

mysql

我希望将一列附加到我的表中,该列将是从顺序列表=到行数的随机数。

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

现在,我想到可以添加一个虚拟的TempRandomColumn =
Rand(),然后对其进行排序,然后使用PHP依次添加数字。但这意味着999条MySQL语句。

有没有办法使用单个MySQL语句来做到这一点?

感谢您的指导。


阅读 377

收藏
2020-05-17

共1个答案

一尘不染

SET @r := 0;
UPDATE  items2
SET     author_id = (@r := @r + 1)
ORDER BY
        RAND()
2020-05-17