4

レコード数が 110 の場合、SQLite のテーブルから最初の 10 レコード (つまり、レコード 1 から 10) を削除したいと考えています。テーブルに必要なレコードは 100 のみです。レコード数が 100 を超える場合は、それらのレコードを削除する必要があります。その結果、新しいレコードを追加すると、100 レコードのみが存在するはずです。SQLite クエリを使用してどのように可能でしょうか。提案を提供してください。ありがとう。

4

3 に答える 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 に答える