レコード数が 110 の場合、SQLite のテーブルから最初の 10 レコード (つまり、レコード 1 から 10) を削除したいと考えています。テーブルに必要なレコードは 100 のみです。レコード数が 100 を超える場合は、それらのレコードを削除する必要があります。その結果、新しいレコードを追加すると、100 レコードのみが存在するはずです。SQLite クエリを使用してどのように可能でしょうか。提案を提供してください。ありがとう。
質問する
14072 次
3 に答える
6
テーブルが 100 行を超えるたびに最初の「X」行を削除して、テーブル内の 100 行を維持したいと考えていると思います。できることは次のとおりです。
Delete from table_name where rowid IN (Select rowid from table_name limit X);
これにより、SQLite テーブルが大きくなると、最初の「X」行が削除され続けます。
于 2012-04-30T10:05:08.667 に答える
1
最初に、テーブル内の最後の 100 レコードを返す select を実行する必要があります。次に、delete コマンドを使用して、結果に含まれていないすべての ID を削除します。次のようになります。
DELETE FROM tbl_name WHERE NOT EXISTS in (SELECT id FROM tbl_name ORDER BY id LIMIT 100 );
お役に立てれば!
于 2012-04-30T02:34:05.187 に答える
-3
DELETE FROM {{ table }} LIMIT 0, 10
それが正しいかどうかは完全にはわかりません。現時点では確認することができません。
于 2012-04-30T02:30:15.017 に答える