• 締切済み

MySQLのデータを自動削除したいです

MySQLとPHPを勉強して1ヶ月の者です。 現在テストで、サンプルスクリプトを参考にニュースサイトのリンクをクリックされたらリダイレクトし、そのデータをMySQLに登録しています。 ゆくゆくは、1日のクリックランキングなるものを作成しようと考えています。 データは link_id int(11) link_url text link_clicks int(11) link_date datetime link_title text というカラムになっております。 しかし、単純に登録し続けているのでデータがどんどん増えていってしまいます。 また、タイトルもまれに取得できない場合があり、空欄となっています。 今後、ランキング等を作ろうと思っていますのでcron等で自動削除+titleが空欄の場合削除をしたいと思います。 そこで、PHPでlink_dateの10日以前のデータとlink_titleが空欄の時は削除する という方法を模索しております。 ご教授の程宜しくお願いします。 ・PHP: 5.4.15 ・mysql: 5.5.29

みんなの回答

  • kool_noah
  • ベストアンサー率33% (95/285)
回答No.1

mysqlでdelete文投げればいいんじゃないんですかね? delete from table where link_title is null and link_date < now() - INTERVAL 10 これで、現在日より10日以前のlink_dateで、かつlink_titleがnullのものが削除されるはずです。 link_dateがnullもしくは、であればORに cronに登録するならシェルスクリプト内にmysqlコマンドで上記のdeleteをたたくようにして、それを1日1回たたけばいいんじゃないでしょうか?

garzoni
質問者

お礼

ご回答ありがとうございます。 目的の動作を行うことができました! ありがとうございました。

関連するQ&A