Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 是否在SQLite中使用LIMIT给出了“中的数据或行”;先进先出”;原因_Android_Sql_Database_Sqlite - Fatal编程技术网

Android 是否在SQLite中使用LIMIT给出了“中的数据或行”;先进先出”;原因

Android 是否在SQLite中使用LIMIT给出了“中的数据或行”;先进先出”;原因,android,sql,database,sqlite,Android,Sql,Database,Sqlite,我在我的Ionic项目中使用SQLite,我在SQLite服务器中保存日志文件,为此,我想将.db文件限制为以先进先出方式仅包含最后2000个数据值,是否使用 限额2000 将给我存储的最后2000个值或我存储的前2000个值(这不是我的要求) 提前感谢您的帮助。SQL查询返回无序集,除非查询具有ORDER BY。这实际上是SQL表表示无序集这一事实的扩展。根本没有秩序可言 因此,使用不带排序依据的LIMIT返回任意行。看起来行是有序的,但它们不是——至少按照SQL标准是这样。您需要一个订购人

我在我的Ionic项目中使用SQLite,我在SQLite服务器中保存日志文件,为此,我想将
.db
文件限制为以先进先出方式仅包含最后2000个数据值,是否使用

限额2000

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

提前感谢您的帮助。

SQL查询返回无序集,除非查询具有
ORDER BY
。这实际上是SQL表表示无序集这一事实的扩展。根本没有秩序可言

因此,使用不带排序依据的
LIMIT
返回任意行。看起来行是有序的,但它们不是——至少按照SQL标准是这样。您需要一个订购人


有一点需要注意:我承认SQLite是一个非常简单的数据库,每个查询只允许一个线程。因此,它实际上可能“可靠地”按特定顺序返回结果。然而,我从未找到保证这种行为并与SQL标准相矛盾的文档。因此,依赖结果集的排序而不使用ORDER BY是相当危险的,即使它似乎有效。

您可以添加ORDER BY id或date列以获取第一个或最后2000个条目。使用触发器。插入新行时,让触发器删除最早的一行。使用LIMIT而不使用ORDER BY会生成任意行(取决于联接、索引、组、分区等)