私はこのようなテーブル(TABLE_NAME
)を持っています:
countが5を超えているかどうかを確認し、超えている場合は、タイムスタンプ値が最も低い行を削除します。この例では、最後の行を削除する必要があります。
1つの複雑なdeleteステートメントでそれを実行したいと思います。それを達成する方法はありますか?
DELETE
FROM TABLE_NAME
WHERE TIMESTAMP < (
SELECT TIMESTAMP
FROM (
SELECT TIMESTAMP
FROM TABLE_NAME
ORDER BY TIMESTAMP DESC
) LIMIT 1 OFFSET 4);
このクエリを使用すると、次のようになります。
私はそれをテストしませんでしたが、これはあなたの問題を解決するためのクエリであるはずです。
これがあなたの解決策です
delete from TABLE_NAME where timestamp IN (select min(timestamp) from TABLE_NAME where (SELECT count() FROM TABLE_NAME)>5)
tableRecordカウントが5より大きいかどうかを確認してから、最小タイムスタンプレコードを削除します。