【发布时间】:2010-10-10 19:37:43
【问题描述】:
我希望将一列附加到我的表中,该列将是从顺序列表 = 到行数的随机数。
所以,如果我的表格有 999 行,那么 数字 1 到 999 将被随机且唯一地分配。
现在,我想我可以添加一个虚拟 TempRandomColumn=Rand(),按此排序并使用 PHP 按顺序添加数字。但这意味着 999 条 MySQL 语句。
有没有办法使用单个 MySQL 语句来做到这一点?
感谢您的任何指点。
【问题讨论】:
我希望将一列附加到我的表中,该列将是从顺序列表 = 到行数的随机数。
所以,如果我的表格有 999 行,那么 数字 1 到 999 将被随机且唯一地分配。
现在,我想我可以添加一个虚拟 TempRandomColumn=Rand(),按此排序并使用 PHP 按顺序添加数字。但这意味着 999 条 MySQL 语句。
有没有办法使用单个 MySQL 语句来做到这一点?
感谢您的任何指点。
【问题讨论】:
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();
【讨论】: