我想找到一种方法来更新mysql中的自定义排名字段,以便它能相应地重新编号所有其他项。
样本数据:
ID Name Ranking
12 Sara 1
13 Mike 2
14 John 3
15 Susie 4
16 Melissa 5
17 Jane 6
如果通过php,我将
'Jane'
更新到排名位置2
,我希望从'Mike'
到'Melissa'
的每个人都被移动到3
到6
的位置。Set Ranking=2 where ID=17
,并找到一种循环浏览其余内容以提高其排名的方法。 最佳答案
你可以试试这样的东西
if($curSort > $setSort){
// "UPDATE table SET Ranking = (Ranking + 1) WHERE Ranking >= $setSort AND Ranking < $curSort"
} elseif($curSort < $setSort){
// "UPDATE table SET Ranking = (Ranking - 1) WHERE Ranking > $curSort AND Ranking <= $setSort"
}
///update $curSort to $setSort
其中$cursort=6;$setsort=2;