微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在SQLite中使用LIMIT是否以“ FIRST IN FIRST OUT”为基础提供数据或行?

如何解决在SQLite中使用LIMIT是否以“ FIRST IN FIRST OUT”为基础提供数据或行?

我在Ionic项目中使用sqlite,将日志文件保存在sqlite服务器中,为此,我想使用FirsT IN FirsT OUT限制.db文件仅包含最后2000个数据值,

LIMIT 2000

会给我最后存储的2000个值或我存储的前2000个值(这不是我的要求)。

非常感谢您的帮助。

解决方法

除非查询具有ORDER BY,否则

SQL查询将返回无序集。这实际上是SQL表表示无序集的事实的扩展。根本没有排序。

因此,在没有LIMIT的情况下使用ORDER BY将返回任意行。看起来行似乎是有序的,但实际上不是这样-至少不是按SQL标准。您需要一个ORDER BY

一个警告:我承认SQLite是一个非常简单的数据库,每个查询只允许一个线程。这样,它实际上可能会“可靠地”以特定顺序返回结果。但是,我从未找到能保证这种行为并与SQL标准相矛盾的文档。因此,即使没有效果,依靠没有ORDER BY的结果集的顺序也很冒险。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。