0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【MySQL】レコード中の改行を取り除く

Last updated at Posted at 2020-02-19

はじめに

DBのレコード中に改行が含まれていると、コンソール上で見た時に以下のようにずれて表示されてしまい、とても見づらくなります。

このようにコンソールで見る場合は「見づらい」だけで済みますが、改行が含まれるレコードをCSVとしてエクスポートした場合はCSVのフォーマットが崩れてしまうため、エクスポートした後に改行を取り除く処理を入れることになって手間がかかります。

mysql> SELECT id, name, note FROM nkojima.user;
+----+----------+----------------------------+
| id | name     | note                       |
+----+----------+----------------------------+
|  1 | nkojima  | Hello,world!               |
|  2 | nkojima2 | Hello,world!
 Hello,world! |
+----+----------+----------------------------+
2 rows in set (0.01 sec)

使用した環境

  • OS
  • CentOS-7.7
  • DB
  • MySQL-8.0.19

改行を取り除く方法

以下のようにREPLACE関数を用いると、改行コードを除去した結果が簡単に得られます。
以下の例では改行コードを空文字と置き換えて単純に除去しただけですが、例えば|など他の文字に置き換えることも可能です。

また、「あるカラムの先頭もしくは末尾に改行コードがある」というケースであれば、代わりにTRIM関数を使うことも出来ると思いますが、汎用性が高いREPLACE関数を覚えておけば良いと思います。

mysql> SELECT id, name, REPLACE(note, '\n', '') FROM nkojima.user;
+----+----------+---------------------------+
| id | name     | REPLACE(note, '\n', '')   |
+----+----------+---------------------------+
|  1 | nkojima  | Hello,world!              |
|  2 | nkojima2 | Hello,world! Hello,world! |
+----+----------+---------------------------+
2 rows in set (0.00 sec)

参考URL

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?