我想爲我的SQLite數據庫建立一個DELETE語句,它將確保任何超過X數量的記錄都將被刪除。我對SQL不太熟悉,所以我不知道如何寫這個,而且我還需要確保記錄首先按日期字段進行排序,並將其存儲爲INTEGER,以便確保我' m保留最新的X行並刪除較舊的記錄。SQLite iOS DB刪除舊記錄
任何幫助如何做到這一點非常感謝。
我想爲我的SQLite數據庫建立一個DELETE語句,它將確保任何超過X數量的記錄都將被刪除。我對SQL不太熟悉,所以我不知道如何寫這個,而且我還需要確保記錄首先按日期字段進行排序,並將其存儲爲INTEGER,以便確保我' m保留最新的X行並刪除較舊的記錄。SQLite iOS DB刪除舊記錄
任何幫助如何做到這一點非常感謝。
它可以在SQLite的使用子查詢和利用限制
您在此處的子查詢將返回這是需要刪掉根據您的X限制(5)所有的ID來實現。我希望它能幫到你
DELETE FROM TABLENAME WHERE ID IN (
SELECT ID FROM TABLENAME
WHERE DATE < strftime('%s','now') limit 5
);
你可以使用類似下面的查詢。你應該也可以在你的日期欄上有一個索引。
DELETE FROM mytable WHERE date_column >= (
SELECT date_column
FROM mytable
ORDER BY date_column
OFFSET num_rows_you_want_to_keep
LIMIT 1
)
你不需要排序記錄,你不需要子選擇。只要'從表中刪除where datefield
2015-02-10 21:44:16