SQLite插入顺序与查询顺序?

时间:2011-04-15 08:50:58

标签: android sqlite

查询返回的行的顺序是否与SQLite数据库中的表插入行的顺序相同?

如果是,这种行为是否一致?

如果否,是否可以强制执行?

我需要存储大约500行数据,并且需要不时地进行排序/排序。在插入之前,数据的顺序正确。

3 个答案:

答案 0 :(得分:9)

鉴于表中的行数很少,这可能就是您所需要的:

SELECT * FROM yourtable ORDER BY ROWID

有关ROWID的更多信息,请参阅以下两个链接: SQLite AutoincrementROWIDs and the INTEGER PRIMARY KEY

答案 1 :(得分:6)

即使订单在一种情况下可能是一致的,也不能保证。

这就是SQL拥有ORDER BY运算符的原因:

SELECT foo,bar FROM Table FOO WHERE frobnitz LIKE 'foo%' ORDER BY baz ASC;

答案 2 :(得分:3)

  

是否会返回行的顺序   查询将与订单中的相同   哪些行被插入到   表,SQLite数据库?

不,你不能指望这一点。在加速查询时,所有查询优化器都有很大的自由度。他们可以自由做的一件事是以最快的顺序返回行。即使特定的dbms支持聚簇索引,也是如此。 (聚集索引对行强加物理排序。)

只有一种方法可以保证SQL数据库中返回行的顺序:使用ORDER BY子句。