简体   繁体   English

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

[英]update sql table fields if field has a higher value then specified

I have a table with a column rank which contains 我有一个表,其列rank包含
rank
1
2
3
4
5
6
7
8

When I delete number 5 I want the numbers above 5 to go down 1 number. 当我删除5号时,我希望5号以上的数字下降1个数字。 So 6=5 7=6 8=7 所以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']);

This code does not update the numbers and i do not have a clue what I'm doing wrong:) 这段代码不会更新数字,我也不知道我在做什么错:)
Oh, I don't get any errors... 哦,我没有任何错误...
What did I do wrong? 我做错了什么?

EDIT 编辑
when i echo update_rank i get: 当我呼应update_rank我得到:
UPDATE menu SET rank='rank - 1' WHERE partnerID=1 AND rank>5)

Your syntax is wrong : rank='rank - 1' 您的语法错误: rank='rank - 1'

should be 应该

rank=rank - 1 . rank=rank - 1

Also the leading .")" shouldn't be there at all. 另外,开头的“ .")"根本不应该在那里。

您可以尝试-

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

假设等级是一个整数字段,则不应引用您的计算rank-1

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM