IDのコレクション(sqlite Android)と、保持したいIDのコレクションを含むテーブルがあります。
次に、toRetain = [1,2,3,4]の場合、実行を作成します。
DELETE FROM my_items WHERE _id NOT IN (1,2,3,4);
ただし、保持する項目の長さが非常に長い場合、SQLエンジンは「SQL変数が多すぎます」という例外をスローします。条項がINにないので、小さなステップでそれを行うことはできません。
どうすれば解決できますか?
私が考える1つの解決策は、すべてのIDを一時テーブルに挿入してから、次のことを実行することです。
DELETE FROM my_items WHERE _id NOT IN (SELECT_id FROM items_to_delete);
その解決策は正しく効率的ですか?