2

rankを含む列を持つテーブルがあります
rank
1
2
3
4
5
6
7
8

番号 5 を削除すると、5 より上の番号が 1 番号下がります。つまり 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)

4

3 に答える 3

2

あなたの構文は間違っています:rank='rank - 1'

する必要があります

rank=rank - 1.

また、先頭.")"はまったく存在しないはずです。

于 2013-01-02T14:08:07.853 に答える
1

あなたはこれを試すことができます-

update menu set rank=(rank - 1) where rank > 5
于 2013-01-02T14:07:33.657 に答える
1

ランクが整数フィールドであると仮定すると、計算を引用するべきではありませんrank-1

 UPDATE menu SET rank= rank - 1 WHERE ....
于 2013-01-02T14:08:06.707 に答える