MySQL - 删除一行并使用正确的排序 ID 对其他行重新排序

标签 mysql sql

我有一个表,其中包含一堆行和一个排序顺序。我想知道如何在删除一行时执行此操作,假设我删除了 sort_order 为 7 的突出显示行。然后我需要将 #8 更改为 #7 .. #9 为#8 .. #10 到#9 .. 和#11 到#10。

enter image description here

这样的事情可能吗?

最佳答案

如果您确实需要更改这些值(sort_order 仍然可以处理间隙),您可以

Delete From t
Where sort_order = 7

然后将剩余条目减少 1:

Update t
Set sort_order = sort_order - 1
Where sort_order > 7

关于MySQL - 删除一行并使用正确的排序 ID 对其他行重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9098100/

相关文章:

c# - 指定的架构无效。错误 : error 0002: Request failed

python - Windows 上真的没有 MySQLdb 的二进制发行版吗?

MySQL:无法使用存储过程插入 CURRENT_TIMESTAMP - 动态语句

python - 如何更新最新的sqlite3帖子?

mysql - MYSQL 中的行计数

"CREATE DATABASE"语句的 C# 和 SQL Server 错误

php - 从 Angular 2 Web 应用程序在 MySQL 中插入数据

PHP 身份验证页面不会将用户输入与数据库中存储的数据进行匹配

sql - 如何将 SQL Server 数据库分发给客户端

php - 如何在不在查询中定义的情况下获取所有表列?