如果字段具有更高的值,则更新sql表字段

时间:2013-01-02 14:05:25

标签: php mysql

我有一个包含列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)

3 个答案:

答案 0 :(得分:2)

您的语法错误:rank='rank - 1'

应该是

rank=rank - 1

同样领先的.")"也不应该存在。

答案 1 :(得分:1)

你可以试试这个 -

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

答案 2 :(得分:1)

假设排名是整数字段,则不应引用您的计算rank-1

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