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

MySQL查询为每行分配一个唯一的随机数,mysql,random,Mysql,Random,我希望在我的表中附加一列,该列是从顺序列表=到行数的随机数 因此,如果我的表有999行,那么数字1到999将被随机唯一地分配 现在,我想我可以添加一个伪TempRandomColumn=Rand,按它排序,然后使用PHP按顺序添加数字。但这意味着999个MySQL语句 有没有一种方法可以使用一个MySQL语句来实现这一点 谢谢你的指点。你真的能按兰德订购吗?这对我来说似乎很奇怪,因为这不意味着它每次将一行与另一行进行比较时都必须调用rand吗?它首先选择rand作为临时值以及正常记录,然后对这些

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

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

现在,我想我可以添加一个伪TempRandomColumn=Rand,按它排序,然后使用PHP按顺序添加数字。但这意味着999个MySQL语句

有没有一种方法可以使用一个MySQL语句来实现这一点


谢谢你的指点。

你真的能按兰德订购吗?这对我来说似乎很奇怪,因为这不意味着它每次将一行与另一行进行比较时都必须调用rand吗?它首先选择rand作为临时值以及正常记录,然后对这些临时值进行排序。它与SELECT id中的SELECT*相同,与表ORDER BY rnd中的rnd相同
SET @r := 0;
UPDATE  items2
SET     author_id = (@r := @r + 1)
ORDER BY
        RAND()
SET @i=1;
SELECT t.*, @i:=@i+1 as RAND_NUM FROM your_table t ORDER BY RAND();