@kyanny's blog

流行はつねに前進していく。そして、精神の偽りの自由が絶えずせり上がっていく - ロマン・ロラン

MySQL データベースから改行コードをエスケープせずカラム値のみ取り出す

XML をカラムに入れているテーブルがあって、そこから特定の一行を出したかったのだけど が \n にエスケープされてしまってデータがちょっと壊れてしまうのとカラム名が含まれてしまって生の XML だけにならないのが嫌だったのでオプションを調べたら、以下のようにしてできた。

$ mysql foo -N -B -r -e 'select data from bar where id = 12345'

http://dev.mysql.com/doc/refman/4.1/ja/mysql.html より、

  • -B, --batch
  • 結果をタブで区切り、各レコードが 1 行になるように出力する。ヒストリファイルでは使用しないこと。
  • -N, --skip-column-names
    • 結果にカラム名を書き込まない。
  • -r, --raw
    • エスケープ変換なしでカラム値を書き出す。--batch とともに使用。

だそうで。勉強になりました。