2013-04-30 41 views
1

我不是很強大的SQL,所以你可以幫助嗎?更新ID列與隨機值

我有100行 我需要改變它們的ID爲隨機值

現在是1,2,3,4,5,6,7 我想28,30,19,1表,84等

我該怎麼辦?

p.s.這個數據庫用於照相館,照片的順序取決於他們的ID。 我想改變id,讓順序變得不同。

+1

你正在尋找剛剛任何隨機值? ID可以重複嗎?你在試圖洗牌嗎? – 2013-04-30 21:39:03

回答

1

您將無法更改隨機事件的自動生成ID。您可以自己生成ID,但您需要檢查以確保它尚未使用。

一個更簡單的辦法是沒有照片的ID進行排序 - 可以代替試試這個:

SELECT * 
FROM photos 
ORDER BY RAND() 

這也將拍出的照片每次出現在不同的順序(我不知道這是你試圖達到的目標)。

+0

那麼,它不工作,因爲照片是由他們的ID顯示。但我創立了另一個棘手的解決方案 - 我創建了另一列「id-2」,生成隨機數字,刪除「id」並將其更名爲「id」 這不壞?或者它是? – 2013-05-01 21:56:37

+0

RAND()會在某個時刻產生重複的數字 - 它們不是唯一的。所以你不能使用它們作爲id值 - 最終你會得到兩張具有相同隨機ID的照片。如果你需要進一步的幫助,你需要把你的查詢和表結構放在你的問題中,因爲很難猜測你在做什麼! – Richard 2013-05-02 07:41:07

0

你不應該改變他們的ID。如果你希望它們隨機出現,你應該在ORDER BY子句中使用RAND()。

下面是一個SQL小提琴例: http://sqlfiddle.com/#!2/be776/1