php - MySQL、PHP : How to "slide down" records by specific row?

标签 php mysql

我有一个带有“位置”行的 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。

enter image description here

最佳答案

当你删除位置时,你知道值(你正在删除哪个位置)。然后获取所有值,&在你删除的特定位置之后,减 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/

相关文章:

php - MySQL:聚合和分组

php - 将 PHP SERVER 变量记录到数据库

c++ - 我们可以为 mysql 数据库中的冲浪描述符指定什么类型

php - 当 SQL 语法正确时,Wordpress dbDelta 函数不添加表

mysql - Neo4j:重写 UNION 的返回超出了应有的水平

MySql 不是空复合字段

php - NGINX 的 apache_request_headers 函数

php - wordpress如何知道它的功能呢?

php - CodeIgniter Controller - JSON - AJAX

php - 在 php 和 c 中使用共享内存?