【MySQL】改行文字コードを登録・除去(置換)する方法


ここではMySQLで、改行文字コードを登録・除去(置換)する方法を紹介しています。

改行文字コードを登録する方法

改行コードの種類

改行コードの種類と正規表現は次の3つです。
 ・CRLF:\r\n
 ・CR:\r
 ・LF:\n

改行コードを登録する方法

次のテーブルを作成し、COL2列に改行文字コードを登録していきます。

CREATE TABLE tab(
 col1 varChar(10)
 , col2 varChar(100)
 );

改行文字を登録するには、次のようにSQLを実行します。

mysql> INSERT INTO tab VALUES('00001','あいう\r\nえお');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tab VALUES('00002','あいう\nえお');
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO tab VALUES('00003','あいう\rえお');
Query OK, 1 row affected (0.01 sec)

改行文字コードが登録された値を確認すると次のようになります。

mysql> SELECT * FROM tab;
+-------+--------------+
| col1  | col2         |
+-------+--------------+
| 00001 | あいう
えお |
| 00002 | あいう
えお  |
えお  | | あいう
+-------+--------------+
3 rows in set (0.00 sec)

改行文字コードを除去 (置換) する方法

改行文字コードを除去(置換)するには、REPLACE関数を使います。

mysql> UPDATE tab SET col2 = REPLACE(col2,'\r\n','');
Query OK, 1 row affected (0.01 sec)
Rows matched: 3  Changed: 1  Warnings: 0

mysql> UPDATE tab SET col2 = REPLACE(col2,'\r','');
Query OK, 1 row affected (0.01 sec)
Rows matched: 3  Changed: 1  Warnings: 0

mysql> UPDATE tab SET col2 = REPLACE(col2,'\n','');
Query OK, 1 row affected (0.01 sec)
Rows matched: 3  Changed: 1  Warnings: 0

改行文字コードを除去(置換)した結果は次のようになります。

mysql> SELECT * FROM tab;
+-------+------------+
| col1  | col2       |
+-------+------------+
| 00001 | あいうえお |
| 00002 | あいうえお |
| 00003 | あいうえお |
+-------+------------+
3 rows in set (0.00 sec)

REPLACE関数を1文にして実行することも出来ました。

mysql> UPDATE tab SET col2 = REPLACE(REPLACE(REPLACE(col2,'\r\n',''),'\r',''),'\n','');
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3  Changed: 3  Warnings: 0

mysql> SELECT * FROM tab;
+-------+------------+
| col1  | col2       |
+-------+------------+
| 00001 | あいうえお |
| 00002 | あいうえお |
| 00003 | あいうえお |
+-------+------------+
3 rows in set (0.00 sec)