2013-07-03 33 views
0

我發佈了另一個類似的問題。
所以仍然有更多的問題。
這是這種情況,我想能夠更新列位置。
下面的例子。如果我更新的行ID = 2列的位置從2到4,我想被組織成以下這裏是更新
php mysql如何組織一個字段來更新位置

+----+--------------+----------+ 
| id | question  | position | 
+----+--------------+----------+ 
| 1 | Question 1 |  1 | 
| 2 | Question 2 |  2 | 
| 3 | Question 3 |  3 | 
| 4 | Question 4 |  4 | 
+----+--------------+----------+ 

所以之前。這裏是更新後

+----+--------------+----------+ 
| id | question  | position | 
+----+--------------+----------+ 
| 1 | Question 1 |  1 | 
| 2 | Question 2 |  4 | 
| 3 | Question 3 |  2 | 
| 4 | Question 4 |  3 | 
+----+--------------+----------+ 

我試過很多東西,沒有什麼作品。
所以如果有人能幫助我會非常感激。
非常感謝。

回答

0

你想要做這樣的事情:

update t join 
     (select position from t where id = 2) t1 
     on t.position >= t1.position 
    set position = (case when id = 2 then 4 else position - 1 end) 

也就是說,減去「1」不是一個有id = 2更大的所有位置。並將該位置設置爲「4」。

+0

我試圖改變我的表的名稱,它一直說位置字段模棱兩可,對不起我對數據庫不好。如果該表是呼叫按摩,則該查詢將如何。謝謝 – KleberBH