2016-04-25 99 views
1

我有5行ID:1,2,3,4,5。如何使執行更新反向查詢MySQL通過ID?

然後我做了一個查詢來嘗試這些ID更改爲:2,3,4,5,6

Update table set `id` = `id` + 1 

然後我得到:關鍵

重複條目'2'主'。

我明白這個查詢首先由ID 1執行,原因是PRIMARY 2已經存在。

所以我的問題是,如何讓查詢已被執行的ID從5到1

+2

你應該嘗試'ORDER BY ID DESC',看看它是否工作 –

+0

@Tin陳德良,它會工作。 – MontyPython

+0

非常感謝。這很簡單,但我想不到 –

回答

2

創造了從1到100的數字定義在列NUM一個主鍵的表num_sample。並寫了這個更新

update num_sample set num = num + 1 order by num desc limit 100; 

在MySQL中工作絕對好。

0

另一種方法不ORDER BYLIMIT

SET @MAX_ID = SELECT MAX(ID) FROM YOUR_TABLE; 

UPDATE YOUR_TABLE 
SET ID = ID + @MAX_ID 

UPDATE YOUR_TABLE 
SET ID = ID - @MAX_ID - 1