选择所有MySQL行并重新插入

时间:2015-05-04 16:36:16

标签: php mysql sorting bulkinsert

所以我的数据库中有一个表,里面有1000行。

现在我不想按照它们插入表格的顺序显示这些记录。

我希望表中的所有行都以某种方式随机洗牌。例如:如果我在订单1 2 3 4 5 6 7 8 9 10中有10条记录,我希望它像8 2 4 6 3 1 7 9 10 5一样。

可以使用rand()方法,但它对大数据无效。我可以在PHP中获取数据并进行随机播放,但我不想使用它,因为每次我获取数据时都必须对其进行随机播放。

所以基本上我不想随机播放和获取数据,而是随机播放表格中的所有行。

只要一次在桌子上洗牌,对我来说就足够了。

1 个答案:

答案 0 :(得分:0)

您创建第二个表,复制原始结构,然后将所有记录转储到其中。重命名表格,你就完成了。值得重建新表上的任何索引,你可能会遇到一些麻烦,mySql对于重新使用旧名称变得挑剔。

INSERT INTO <copy of source table>
SELECT *
FROM <source table>
ORDER BY RAND()