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

时间:2009-03-02 16:24:37

标签: mysql random

我希望在我的表格中附加一列,它是一个从连续列表中随机数=行数。

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

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

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

感谢您的任何指示。

2 个答案:

答案 0 :(得分:24)

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

答案 1 :(得分:1)

SET @i=1;
SELECT t.*, @i:=@i+1 as RAND_NUM FROM your_table t ORDER BY RAND();