次の列を持つテーブルがあるとします。
pri_id
、item_id
、comment
、date
私が欲しいのは、特定item_id
の日付より古い特定のレコードを削除する SQL クエリですが、そのレコードが 15 行を超えている場合に限りitem_id
ます。
これは、アイテムの 1 年以上前のコメント レコードを削除するために使用されますが、常に少なくとも 15 のレコードを保持したいと考えています。こうすれば、10 年間コメントが 1 つあった場合は削除されませんが、過去 5 日間に 100 件のコメントがあった場合、最新の 15 レコードのみを保持します。これらはもちろん、この例の任意のレコード数と日付の時間枠です。
mysql、oracle、postgres などで動作する非常に一般的な方法を見つけたいと思います。DB 抽象化に phps adodb ライブラリを使用しているので、可能であればそれでうまく動作するようにしたいと思います。