mysql:7418
From: Shinya Kawaji <Shinya Kawaji <kawaji@xxxxxxxxxx>>
Date: Mon, 07 Apr 2003 20:57:24 +0900
Subject: [mysql 07418] Re: 最新のレコードを○○件残して古いものを削除
かわじ、です。 > > 最新のレコードを○○件残して古いものを削除するSQL文を発行したいので > > すが、どのように書いたらよいのか悩んでおります。 > > 以下のようなsql文でいいのかなぁと思いますが,どうでしょう。 > (総レコード件数が10,000件を超えない場合に10件だけ残すことを > 想定しています。) > > delete from db_name order by timestamp desc limit 10,10000; delete 文に order by を使うことが出来るのは、MySQL 4.0 以降のようです。 (それと、limit に offset は指定できないような気も) http://www.mysql.com/doc/en/DELETE.html 元の話ですが、何か auto_increment なフィールドを仮に id とし、 また、残す件数を 10000 件 として 新しいものから10000件前の id を調べて select id from db_name order by id desc limit 10000,1; 上記で id が 得られた場合のみ(10000件以上あった場合のみ)、 それ以前のものを消す delete from db_name where id < (上記のid); という感じでいかがでしょう?
7412 2003-04-07 18:35 [Satoshi Iwanaga <iwa] インストール・別サーバへ接続 7413 2003-04-07 19:08 ┗[doumae <doumae@xxxxx] 7414 2003-04-07 19:51 ┣[yuji koga <koga-y@xx] 最新のレコードを○○件残して古いものを削除 7415 2003-04-07 20:12 ┃┣[Daiju Azuma <daiju_a] -> 7418 2003-04-07 20:57 ┃┃┗[Shinya Kawaji <kawaj] 7420 2003-04-07 21:24 ┃┃ ┗[Daiju Azuma <daiju_a] 7422 2003-04-08 09:54 ┃┗[yuji koga <koga-y@xx] 7416 2003-04-07 20:16 ┣[Satoshi Iwanaga <iwa] 7423 2003-04-08 15:12 ┃┗[Satoshi Iwanaga <iwa] 7424 2003-04-08 15:47 ┃ ┗[doumae <doumae@xxxxx] 7425 2003-04-08 16:12 ┃ ┗[Satoshi Iwanaga <iwa] 7426 2003-04-08 16:48 ┃ ┣["TOYOSHIMA,Masayuki"] 7432 2003-04-09 14:26 ┃ ┗[Satoshi Iwanaga <iwa] 7417 2003-04-07 20:21 ┗[doumae <doumae@xxxxx]