[英]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.