[前][次][番号順一覧][スレッド一覧]

mysql:7414

From: yuji koga <yuji koga <koga-y@xxxxxxxxxx>>
Date: Mon, 07 Apr 2003 19:51:39 +0900
Subject: [mysql 07414] 最新のレコードを○○件残して古いものを削除

初めまして。古賀と申します。
諸先輩方の投稿は非常に参考になり、今までちょくちょく利用させて頂きました。
何か分からないことがあっても、過去ログなどを調べると解決策が見つかり、
助けられてきました。

が、今回、どうしても分からないことが有りましたので、
質問させて頂きたく存じます。

環境:
mySQL 3.23.53
PHP 4.2.4

質問:
最新のレコードを○○件残して古いものを削除するSQL文を発行したいのですが、
どのように書いたらよいのか悩んでおります。

同じ機能をphp上から

1 まず select count(*)

2 カウントした値が○○件より多ければ、最も古いレコードを削除
  2.1 最も古い(タイムスタンプの小さい)レコードをselectし、
      その主キーを取得
  2.2 2.1で取得した主キーを持つレコ?を削除

3 1・2をループし、カウントした値が○○件に等しくなったらループを抜ける

として実現しています。が、どうもスマートでないので、
もしかしたらループなど使わなくても1文で(もしくはもっとスマートに)
出来てしまうのでは?と考えていたのですが、どうも思いつかず、
今回の質問となりました。

どなたかご存じの方いらっしゃいましたら、ご教授下さい。

既出の際はご容赦下さい。


<? /*
株式会社メディアプレス   制作課  古賀裕二
       会社:koga-y@xxxxxxxxxx
       自宅:yuuukunn@xxxxxxxxxx
*/ ?>


[前][次][番号順一覧][スレッド一覧]

      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]