MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLの値に改行(キャリッジリターン)を追加する方法

MySQLで値に改行(キャリッジリターン)を追加するには

MySQLで値に改行(キャリッジリターン)を追加したい場合は、CONCAT_WS()関数を使用します。新しい行として出力したい場合は、区切り文字として「\n」を指定するのがポイントです。

基本構文

SELECT CONCAT_WS('\n', yourColumnName) AS anyVariableName FROM yourTableName;

それでは、実際の例を見ていきましょう。

サンプルテーブルの作成

まず、動作を確認するためのテーブルを作成します。

mysql> create table NewLineDemo
-> (
-> CountryName varchar(10)
-> );
Query OK, 0 rows affected (0.50 sec)

レコードの挿入

INSERTコマンドを使って、いくつかのレコードを登録します。

mysql> insert into NewLineDemo values('US');
Query OK, 1 row affected (0.15 sec)
mysql> insert into NewLineDemo values('UK');
Query OK, 1 row affected (0.13 sec)
mysql> insert into NewLineDemo values('AUS');
Query OK, 1 row affected (0.11 sec)

テーブルの内容を確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from NewLineDemo;

実行結果は以下の通りです。

+-------------+
| CountryName |
+-------------+
| US          |
| UK          |
| AUS         |
+-------------+
3 rows in set (0.00 sec)

CONCAT_WS()で改行付きのリストを取得する

CONCAT_WS()関数の第1引数に「\n」を指定すると、各値が改行されて出力されます。以下のクエリを実行してみます。

mysql> select concat_ws('\n',CountryName) as CountryList from NewLineDemo;

実行結果は以下の通りです。

+-------------+
| CountryList |
+-------------+
| US          |
| UK          |
| AUS         |
+-------------+
3 rows in set (0.00 sec)

複数の値を直接指定して改行で結合する

テーブルを参照せず、複数の値を直接渡すことも可能です。次のように記述します。

mysql> select concat_ws('\n','US','UK','AUS') as CountryName;

実行結果は以下の通りです。

+-------------+
| CountryName |
+-------------+
| US          |
| UK          |
| AUS         |
+-------------+
1 row in set (0.00 sec)

補足:キャリッジリターンとラインフィードの違い

なお、厳密には「\r」がキャリッジリターン(CR)、「\n」がラインフィード(LF=改行)に対応します。Windows環境では「\r\n」の組み合わせが改行として扱われるため、出力先の環境に合わせて使い分けるとよいでしょう。

  1. MySQLで列の値の先頭に000(ゼロ埋め)を追加する方法

    MySQLで列の値に000(ゼロ)を追加するには?MySQLで数値の先頭に「000」のようなゼロを追加して表示したい場合は、ZEROFILL属性を使用します。ZEROFILLを指定した列では、設定された表示幅に満たない桁数が自動的に0で埋められます。まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1913 ( Code int(4) ZEROFILL AUTO_INCREMENT NOT NULL, PRIMARY KEY(Code) ); Query OK, 0 rows affected (0.00

  2. 正の値を持つ行に対してTRUEを返すMySQLクエリの書き方

    MySQLで正の値を持つ行に対してTRUE(1)を返し、負の値に対してはFALSE(0)を返したい場合は、IF()関数を使うのが便利です。この記事では、実際にテーブルを作成し、サンプルデータを挿入しながら、具体的なクエリの書き方を解説します。 1. サンプルテーブルを作成する まず、CREATE TABLE文を使ってテーブルを作成します。 mysql> create table DemoTable2038     -> (     -> Id int NOT NULL AUTO_INCREMENT