OFFSET中指定的值是否与rowid(sqlite)相同?

Is the value specified in OFFSET the same as rowid (sqlite)?

我的sql站点table需要一个简单的滚动功能,return显示上次我select的前X条记录或后X条记录编辑。正如规则 #2 "Do not try to implement a scrolling window using LIMIT and OFFSET" 所说,我从

改为 sql
SELECT * FROM tracks WHERE xxx  LIMIT 5 OFFSET :index

SELECT * FROM tracks WHERE xxx  and rowid > :index LIMIT 5 

我做了一些简单的测试,结果似乎是一样的,例如。 select rowid from tracks where rowid > 100 limit 5 and select rowid from tracks limit 5 offset 100 both returnrowid 100后相同的5条记录。

所以我的问题是<1> OFFSET 中指定的值是否与rowid 相同(假设我没有删除记录)? <2>我的改变更好了吗?

更新,我知道删除记录时,rowid可能会改变。所以我的问题是假设我没有删除记录, OFFSET 中使用的值是否与 rowid 相同?如果不是,这个值到底是什么意思?如果我确实删除了一些记录,那么这个值到底意味着什么?

另外,那里的文章说“此信息已过时”,但我就是找不到更新的信息!

当您删除了一些行后,rowid 数字不再与索引相同。

要显示下一页的行,您不应使用 index 值,而应使用上一页中作为排序依据的列的最后一个值。