关于这个问题,我已经看到了很多关于 SO 的问题,但没有一个与我的场景相关。除了进行基本的 CRUD 操作之外,我离 SQL 专家还差得很远。因此,我非常坚持这一点。
我有一张桌子。
myTable [rID, newsID, OrderPosition]
在哪里;
rID is primaryKey int column,
newsID int is the ID of an item from another table and,
OrderPosition int to hold the position of the rows.
myTable 将始终总共有 10 行。
因此,最初,让我们假设 myTable 具有以下数据:
rID newsID OrderPosition
100 4000 1
101 4100 2
102 4200 3
103 4300 4
104 4400 5
105 4500 6
106 4600 7
107 4700 8
108 4800 9
109 4900 10
预期的功能应如下所示;
插入新的
插入新项目时,用户应该能够将其插入到他/她想要的任何位置。现在,我只设法通过删除 OrderPosition = 10 行、将新记录 OrderPosition 分配为 0 并重新排序表来将新记录插入到第一个位置。但是客户想要选择项目应该去的位置。在这种情况下,我假设 OrderPosition = 10 将再次被删除?
删除
当从这个表中删除一条记录时,由于一共有10条记录,我需要从另一个表[tblNews]中获取最新输入的记录并将其插入到第10位(我可以从tblNews中获取最后一条记录通过按输入日期降序排序。)由于我不知道他们将删除哪条记录,所以我不知道如何在删除记录后重新排序表。
任何帮助、代码、文章方向将不胜感激。
=========== 编辑 =====================
答案中提到的 UPDATE 方法对我不起作用;例如,用户想要在第 5 个订单位置插入一条新记录。这意味着,订单位置 10 将被删除,订单位置 5、6、7、8 和 9 的当前记录将加一