【发布时间】:2018-11-30 11:18:02
【问题描述】:
您好,我想以与插入相反的顺序从表中检索行。
我知道我们可以使用整数主键并使用它进行排序,但因为我在 android 应用程序中使用它。很难更改现有用户的表结构。 (是的,我忘记在旧版本中提供整数主键)
查了很多,发现Sqlite中有一个秘密列,叫ROWID,我们可以用它来排序。
SELECT * FROM tablename ORDER BY rowid DESC
但即使在使用它之后,我也得到了洗牌的结果。
任何可能的解决方案或想法?
【问题讨论】:
-
@laalto 我的意思是相反的顺序
-
那么您的插入效果如何?你能发布一些这样的“洗牌结果”的例子吗?
-
@laalto 当我再次检查表结构时,我发现有另一列用作整数主键,但我无法使用该列值排序。所以看起来如果我们在表中已经有一个整数主键,那么我们就不能用 rowid 对其进行排序。当我从该列中删除主键时,我能够使用 rowid 对其进行完美排序。
-
猜测您将值分配给定义为整数主键的列,因此这成为排序顺序。即 INTEGER PRIMARY KEY 实际上是 rowid 的别名。如果您随后设置值(只要它们是整数且唯一的),那么您将值分配给 rowid(您可以这样做)。