MySQL で改行を挿入する方法

データベースに文字列を保存する時や、エラーメッセージなどを生成するときに、「改行を入れたい」と思ったことはありませんか?

今回は、MySQL で改行を挿入する方法と、それに関連する注意点についてご説明します。

OS ごとの改行コードの違いについて

改行はテキストの中で行を区切るための特殊な文字で、環境によって次のように異なります。

  • Unix/Linux/macOS は \n - (LF)
  • Windows は \r\n - (CR+LF)

VS Code などのモダンなエディタでは、どちらの環境で、どちらの改行コードでも、ちゃんと改行されて表示されるようになってはきています。


\n または \r\n を使って改行を挿入する

MySQLでは、文字列中に \n または \r\n を含めることで改行を挿入できます。

例えば、私は今 macOS を使っているので、「1行目のテキスト」と「2行目のテキスト」の間に改行を入れたい場合は次のようにできます。

SET @message = '1行目のテキスト\n2行目のテキスト';
SELECT @message;

[実行結果]

MySQLで改行を挿入する方法 1


改行が入っていることを確認するために、結果の文字列をコピーして、テキストエディタに貼り付けてみました。

MySQLで改行を挿入する方法 2

「1行目のテキスト」と「2行目のテキスト」の間に改行が入っていることがわかります。


CHAR() 関数を使って改行を挿入する

MySQLで、CHAR() 関数を使っても、文字列中に改行を入れることができます。

CHAR(10) が Line Feed: LF で、CHAR(13) が Carriage Return: CR です。


macOS の環境で、CHAR(10) を使って改行を入れたい場合は次のようにできます。

SET @message := '';
SET @message = CONCAT(@message, '1行目のテキスト', CHAR(10), '2行目のテキスト');
SELECT @message;

[実行結果]

MySQLで改行を挿入する方法 3

1 行目で @message を明示的に変数を文字列型として初期化しています。

そうしないと、CHAR(10) は BINARY 型として扱われる可能性があり、CONCAT()BINARY 型の引数が含まれると、結果も BINARY になり、型は BLOB になってしまうためです。

BLOB 型になるのを避けるには、変数を文字列型で初期化するか、CAST()CONVERT() を使うのが安全です。


結果の文字列をコピーして、テキストエディタに貼り付けると、先ほどと同様に改行が入っています。

MySQLで改行を挿入する方法 4


REPLACE() 関数を使って改行コードを置き換える

改行コードはOSによって異なるため、データのやりとりや外部システムとの連携時に注意が必要です。

例えば、Windows から取り込んだ CSV ファイルでは \r\n が使われていることが多く、そのまま保存されてしまいます。

必要に応じて、REPLACE() 関数で改行コードを統一することも可能です。

SET @message = '1行目のテキスト\r\n2行目のテキスト';
SET @message = REPLACE(@message, '\r\n', '\n');
SELECT @message;

[実行結果]

MySQLで改行を挿入する方法 5


以上、MySQL で改行を挿入する方法と、それに関連する注意点についてご説明しました。

© 2025 MySQL 入門