2017-10-06 40 views
0

我需要重新安排我的表。请注意,这张桌子大约有25万行。MySQL的随机顺序保存在数据库中没有ID

Id是自动递增领域。

当前表(文章)

+----+---------+----------+ 
| id | details | category | 
+----+---------+----------+ 
| 1 | detail1 | cat1  | 
| 2 | detail2 | cat2  | 
| 3 | detail3 | cat3  | 
+----+---------+----------+ 

需要改变筛选

| id | details | category | 
+----+---------+----------+ 
| 1 | detail3 | cat3  | 
| 2 | detail1 | cat1  | 
| 3 | detail2 | cat2  | 
+----+---------+----------+ 

在话基本上我需要重新排序(随机)行保存在表。重新排序应该只有没有ID。我的意思是这个过程的所有目标都是改变(实际上改变另一个id的id)文章的ID。

我们能做到这一点只,仅在MySQL? (我问在这里,因为我可以做到这一点使用PHP,我的意思是创建临时表,他们清空这一点,然后再次随机插入,但我想知道,有没有办法做到只用MySQL查询或两个)

回答

0

您可以使用update重新分配id

set @id := 0 
update t 
    set id = (@id := @id + 1) 
    order by rand();