mysql,如何更好的在有顺序的几个条目中更好的插入数据?下有详细

图片说明
现在有这样的十几条条目,他们的顺序从1开始。
如果我想在14之前13之后插入一条数据,那么就要把14之后的所有数字全部加1。
现在问题是前台会把所有要插入的数据一次发过来,而不是每次插入都发一次。
所以如果要插入14,那么顺序就是
--把14之后的数字加1,插入14,以此类推
我想问的是,在不考虑前台异步的情况下,有没有什么方法可以完成这样的插入
希望大家不吝赐教!

不修改数据结构,没有什么好办法,如果你需要频繁地“插入”数据。
建议你使用如下数据结构:
id preid nextid ...
其中id存储当前数据id,preid存储它前面一个数据的id,nextid存储后面一个数据的id (其中第一个数据preid=null,最后一个数据nextid=null)

id = select * from table where preid = null
stationnum = 1
do
{
id = "select next from table where preid =" + id
stationnum++
}
while (nextid != null)
这样查询出来的就是递增的

update table set stationNum = stationNum+1 where stationNum>=14;

再来一个insert

 insert into table value(14)

随手一写,如果有语法错误请谅解。

楼上的解法都存在一些问题:每一次变更都需要update一遍,查询的时候不方便。
上面同学给出的方案没问题,但是实际使用会出现各种问题。
我当时遇到这个问题解决方法是客户端将变更记录传过来,然后全量更新变更记录。

这种情况建议前台穿完整的数据过来,后台更新全部数据

仅考虑你当前的场景,并且不考虑并发的情况:
设插入前条目i = 13,插入后条目j = 14, 若插入条目总数 n = 10
则插入前条目排序不变,插入条目为++i,插入后条目变更为j+n