MySQL更新重新排序数据字段

时间:2013-10-11 21:06:31

标签: mysql

如何在更新期间对表格中的字段重新排序。

即我有这张表:

|id|order|
|1 | 0   |
|2 | 0   |
|3 | 1   |
|4 | 2   |
|5 | 3   |
|6 | 0   |
|7 | 4   |

现在我要做的是,如果删除id = 3,整个订单字段将更新为:

|id|order|
|1 | 0   |
|2 | 0   |
|4 | 1   |
|5 | 2   |
|6 | 0   |
|7 | 3   |

这有一个简单的解决方案吗?如果有,我该怎么办?我正在考虑单独检查字段。

即如果3被删除,我将首先获取其订单号,并检查是否没有其他ID保持相同的订单,如果没有,我将继续检查所有大于订单号3的订单和单独更新它们。

1 个答案:

答案 0 :(得分:1)

如果id是自动数字或新ID将始终采用max(id)+1值,则:

通过更新刚删除的行之后的所有行:

update your_table set order = order - 1 where id> @the_id_you_just_deleted