こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2013-06-10 16:46:34

QNo.8127904

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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回たたけばいいんじゃないでしょうか?

投稿日時 - 2013-06-10 17:38:06

お礼

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

投稿日時 - 2013-06-11 10:57:07

あなたにオススメの質問