查询返回的行的顺序是否与SQLite数据库中的表插入行的顺序相同?
如果是,这种行为是否一致?
如果否,是否可以强制执行?
我需要存储大约500行数据,并且需要不时地进行排序/排序。在插入之前,数据的顺序正确。
答案 0 :(得分:9)
鉴于表中的行数很少,这可能就是您所需要的:
SELECT * FROM yourtable ORDER BY ROWID
有关ROWID的更多信息,请参阅以下两个链接: SQLite Autoincrement和ROWIDs 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
子句。