Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.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
Ios 如何使用';限制';_Ios_Iphone_Sqlite_Sql Delete - Fatal编程技术网

Ios 如何使用';限制';

Ios 如何使用';限制';,ios,iphone,sqlite,sql-delete,Ios,Iphone,Sqlite,Sql Delete,我在我的iPhone应用程序中使用FMDB(非常新!),希望将表中的行数限制为某个特定值。每当我插入新记录时,我都要检查是否超出了某些maxNumberOfEntries,如果超出,则删除最旧的条目。我尝试了以下方法: (...) [db beginTransaction]; [db executeUpdate: @"DELETE FROM table_name WHERE someId = ? ORDER BY date LIMIT 10", [NSNumber numberW

我在我的iPhone应用程序中使用FMDB(非常新!),希望将表中的行数限制为某个特定值。每当我插入新记录时,我都要检查是否超出了某些maxNumberOfEntries,如果超出,则删除最旧的条目。我尝试了以下方法:

(...)        
[db beginTransaction];
[db executeUpdate: @"DELETE FROM table_name WHERE someId = ? ORDER BY date LIMIT 10", [NSNumber numberWithInt: 123], nil];
[db commit];
(...)

但sqlite似乎无法识别“限制”——查询的一部分。如何在不直接指定要删除的条目的情况下删除表中一定数量的行?

我没有尝试过,但可能与此相关

有一个名为SQLITE_ENABLE_UPDATE_DELETE_LIMIT的编译标志,它启用了该功能:

以下是一篇相关的SO帖子:

在相关文章中,您可以在select语句中使用delete where id,并在select语句中尝试限制:


我没有尝试过这个,但可能与此相关

有一个名为SQLITE_ENABLE_UPDATE_DELETE_LIMIT的编译标志,它启用了该功能:

以下是一篇相关的SO帖子:

在相关文章中,您可以在select语句中使用delete where id,并在select语句中尝试限制:


限制开始,范围,因此如果要删除前30个,请执行限制0,30。请记住,如果要保留第一个,但仍要删除30个,则它将变为限制1,30,而不是限制1,31,这对我不起作用。没有限制部分,我删除所有someId=123的条目,使用它我什么也不删除。限制开始,范围,所以如果你想删除前30个,请限制0,30记住,如果你想保留前30个,但仍然要删除30个,它将变为限制1,30,而不是限制1,31对我不起作用。如果没有限制部分,我会删除someId=123的所有条目,使用它我什么也不删除。