MySQL

MySQL

【MySQL】改行コードを削除しながらSELECTする方法

2018/01/30

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

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
-, , , , ,