MySQLで、なんちゃってMD5変換
あるシステムのデータ移行で、MySQLのテーブルの特定の項目にMD5変換した値をセットする必要があり、なんとか簡単に変換できないかな~、ということで考えてみた。
1. ExcelにMD5変換の関数とかありそうだな?
⇒ みつからず
2. PHPでMySQLからデータを取り出しながら、PHP関数でMD5変換してファイルに出力
(or DB更新)するスクリプト書く。
⇒ 検証含めるとツール作るのに手間がかかりすぎ
3. MySQLでMD5変換できないか
⇒ どうやらできそう
ということで、3のやり方にトライ。
phpMyAdminつかえば、SQL画面からselect発行すれば実行結果をHTMLの表形式で返してくれるので、それをExcelにコピペするのが早いかな。
SELECT MD5( `フィールド名` ) FROM `テーブル名`
where... order by ...
↑ フィールド名のくくりはバッククォート ` ね。シングルクォート ' でなく。
で、指定したフィールド名の値をMD5変換しながらとりだして、ブラウザ上にリストを出してくれました。
350件のレコード一括変換。
これをロード用のcsvにはりつけて、MySQLに一括ロード。
これは簡単ですね。
#
今回はcsvの一括ロードだったので使わなかったけど、PHPから処理したいときなんかはinsert の副問い合わせ(insert ... select ステートメント)でOK。
##
勉強になったけど、今後使う機会はほとんどなさそうだな ^ ^;