如何得到 记录在数据表中的位置
怎样获得某条记录在表中的具体位置,比如是第三或第十条.
如果用ID 的话是不行的,因为数据表可能要进行删除操作,那么ID就是不连续的了.
我现在需要用到 某一条记录在数据表中的具体位置(即他在数据表中具体是是第几条)
[解决办法]
ID即便是关键字,主键
删除后ID不连续,“用过”的ID不能方便再用
这个确实是个问题,很不爽,好像没有讨巧的办法。
“某条记录在表中的具体位置”能控制不?
我觉得不能,不过好像以前有人说可以,学习
[解决办法]
select count(ID) + 1 as pos from mytable where ID < theID order by ID
[解决办法]
“记录在表中的位置”,这是一个没有意义的概念。我记得很久以前看过的资料,不知道是DB2还是Sybase还是什么数据库,它强调了没有“记录在表中的位置”这一概念。如果没有使用 "Order by ",它不保证两次查询返回的记录顺序是相同的。
[解决办法]
可以这样解决。
建一个字段ID,然后设置按照这个字段排序。
然后建一个计算字段,ID1,你读ID1的值就是你记录的位置了。
我也觉得记录在表中位置概念不很强,除非你在DBGrid中显示就有个位置问题。
如果你在DBGrid中删除纪录就可以按照上面的方法做,
如果要指定位置插入记录,就取插入位置ID和下一位置ID,求和除以2就是你插入记录的ID.
方法苯了点,还是有用的。
[解决办法]
的确存在这个问题,LZ可以考虑用
uniqueidentifier 做标识列
[解决办法]
如果是informix用rowid,其它也都有类似字段