我有一个带有“位置”行的 MySQL 表。基本上是一组记录,它们有自己的 ID、描述和标题(和职位)行。
每条记录的位置都是唯一的,没有两条记录可以有相同的位置。当您创建新记录时,其位置是通过选择最大位置值并将其加 1 来创建的。
问题是,当您删除 一条记录时,表格中的位置“空缺”就形成了。假设记录有 1、2、3、4、5 个位置值,您删除第 4 个,它变成 1、2、3、5。
我希望这一行向下“滑动”,所以它变成 1、2、3、4。如果删除了第 2 条记录,它应该变成 1、2、3(而不是 1、3、4)。
另外,如果有很多复杂的位置栈,比如1、3、2、4、5、6、_、8,其中_被删除,那么它应该尊重无序的1、3、2、4部分,变成1、3、2、4、5、6、7。
最佳答案
当你删除位置时,你知道值(你正在删除哪个位置)。然后获取所有值,&在你删除的特定位置之后,减 1。 如果你的堆栈是 1,2,3,4,5,6,7,8,9 并且你正在删除 7,那么计算总堆栈 = 9 现在运行 for() 循环,从 7 开始:更新表设置位置= position-1 其中 position =7.
但这不是一个好的解决方案。
关于php - MySQL、PHP : How to "slide down" records by specific row?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36449608/