如何在更新期间对表格中的字段重新排序。
即我有这张表:
|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的订单和单独更新它们。
答案 0 :(得分:1)
如果id是自动数字或新ID将始终采用max(id)+1值,则:
通过更新刚删除的行之后的所有行:
update your_table set order = order - 1 where id> @the_id_you_just_deleted