【发布时间】:2011-12-13 13:29:21
【问题描述】:
我在我的 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 无法识别查询的“LIMIT”部分。如何在不直接指定要删除的条目的情况下删除表中的特定行数?
【问题讨论】:
-
LIMIT start,range 所以如果你想删除前 30 个,做 LIMIT 0,30 请记住,如果你想保留第一个,并且仍然想删除 30 它变成 LIMIT 1, 30 而不是 LIMIT 1,31
-
对我不起作用。没有限制部分,我删除了所有带有 someId=123 的条目,用它我什么都不删除。
标签: ios iphone sqlite sql-delete