2017-10-06 34 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();