2013-01-02 41 views
2

我有一個表,其中包含
rank
1
2
3
4
5
6
7
8
更新SQL表中的字段,然後指定

當我刪除我想上述5的數字往下走1號5號列rank。所以6 = 5 7 = 6 8 = 7

$start_rank = singleSelectQuery('SELECT rank FROM menu WHERE menuID='.$menuID.'');
$update_rank = Query("UPDATE menu SET rank='rank - 1' WHERE partnerID=". $partnerID ." AND rank>".$start_rank['rank']);

這個代碼不更新的數字,我沒有線索,我做錯了什麼:)
哦,我不明白任何錯誤...
我做錯了什麼?

編輯
當我回聲update_rank我得到:
UPDATE menu SET rank='rank - 1' WHERE partnerID=1 AND rank>5)

+0

看到我下面的答案..你有2個錯誤那裏有 –

回答

2

你的語法是錯誤的:rank='rank - 1'

應該

rank=rank - 1

此外,領先的.")"應該不存在。

+0

。「)」解決了,並刪除引號作品太thx :) –

1

你可以試試這個 -

update menu set rank=(rank - 1) where rank > 5 
+0

與括號不起作用,排名並不總是5 :) –

+0

@GertKommer:它工作正常,我已經過測試..請檢查一次 –

+0

你是正確的。對不起。它就是''「)''那是搞砸了代碼。 –

1

假設秩是一個整數字段,你不應該引用您計算rank-1

UPDATE menu SET rank= rank - 1 WHERE ....