日期:2014-05-16  浏览次数:20662 次

关于数据表排序显示的问题
有一张数据表table1,里面有两个字段ID和start。ID的值是按start从小到大的顺序进行赋值的,比如哪条记录的start最小,那它的ID就是1,以此推之。在从Web界面向这个数据表插入数据时,新插入的数据默认ID为0.现在期望在插入成功后自动对新插入的数据进行排序,看这条新纪录的start值从小到大排第几位,然后把它的ID改为几。该怎么实现?

------解决方案--------------------
插入以后判断一下新插入的@start_1排行第几 赋值@num,然后更新id

select count(*) from tb where start<@start_1

update tb set id=@num where start=@start_1



------解决方案--------------------
最好这个表加一个主键 自增id的那种就更好处理了
------解决方案--------------------
不过插入的新值会影响所有大于他的值的排名啊 势必更新很多 这样的业务逻辑很危险
------解决方案--------------------
1.给start加个索引
2.从table1中找出start比你刚添加的start的值大的最小的ID号,设为num
3.将table1中值不小于num的ID的值都加1
4.将新纪录插入表中,设其ID为num