MySQL

MySQLで、改行コードを削除しながら抽出する方法

2015/11/10

SQLで一覧を作成時に、レコード内に含まれる改行コードを削除しながら抽出する方法を備忘録としてポストします。

SQLで改行コードを削除する方法

原因

とあるレコードの一覧をcsvなりエクセル表で欲しいと言われたので、以前ポストしたCSEで1,000件ごと抽出しcsv書き出ししたのですが、行数を数えるとなぜか1,200件ほどになっていました。

原因を調べると、途中で「改行」しているレコードがわんさかとあり、こりゃイカンと。
改行している原因は「改行コードが含まれているから」だと何となく理由が分かったので、消しながら抽出すれば良いんじゃないのとごにょごにょして、欲しいデータが作成できました。

Replace関数で置換

欲しいカラムに Replace 関数で改行コードの変換を指定し、改行コードを置換削除します。
例の場合では name カラムに対して改行コードを置換するように指定しています。

Char(13) と Char(10)

Replace句 にある Char(13) と Char(10) ですが、これは Char関数で ASCIIコード10進数 に変換を行っています。

それぞれ、

  • Char(13) : CR(キャリッジリターン)
  • Char(10) : LF(ラインフィード)

の意味となります。

タブ(\t)を指定したい場合は同様に char(9) を指定します。

  • Char(9) : \t(タブ)

-MySQL
-, , , , , , , ,