如何解决在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 举报,一经查实,本站将立刻删除。