アメブロのRSSのURL変更に対応

明日の午後2時にアメブロの古いRSSのURLが使えなくなりますので、簡単なブログ用のクローラを動かしているのですが、301対応が間に合わないため手動でMySQLRSSテーブルのURLを置換しました。

以前似たような処理をするときにはプログラムでselectした結果を順番にupdateしていたのですが、replace関数を使えばSQL一行でできます。

UPDATE rss SET url = replace(url, 'ameblo.jp', 'rssblog.ameba.jp');

rssテーブルのurlにameblo.jpを含むものをrssblog.ameba.jpに置換して更新します。

上記のSQLをそのまま発行するとアメブロではないameblo.jpを含むURLを誤爆する可能性があるので、先頭にhttp://もつけてやったほうがよいかもしれません。
量が多いと結構時間がかかる処理になり、またMYISAMだとテーブルにロックがかかるので、実行するときは注意が必要です。