私のiPhoneアプリではFMDBを使用していて、テーブルの行数を一定の値に制限します。私は新しいレコードを挿入するたびに、いくつかのmaxNumberOfEntriesが超過していないかどうかチェックし、もしそうなら、最も古いエントリを削除したい。私は以下を試した:'LIMIT'を使用してテーブルから行を削除する方法
(...)
[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 –
は私のためには機能しません。 limit-partなしでは、someId = 123のすべてのエントリを削除します。それだけで何も削除しません。 – rindeastwood
これで解決しましたか? – bryanmac