我想找到一种方法来更新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'的每个人都被移动到36的位置。
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;

09-18 05:51