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

MySQLでクエリ結果をカンマ区切りのリストとして表示する方法

MySQLでは、CONCAT()関数を使うことで、複数のカラムの値を1つのカンマ区切りの文字列として表示できます。区切り文字となる「,」を引数に指定するのがポイントです。

ここからは、実際の例を使って手順を見ていきましょう。

テーブルの作成

まず、CREATE文でサンプル用のテーブルを作成します。

mysql> create table CommaSeperateDemo
   -> (
   -> Id int,
   -> FirstName varchar(100),
   -> LastName varchar(100)
   -> );
Query OK, 0 rows affected (0.93 sec)

レコードの挿入

次に、INSERT文でテストデータを3件追加します。

mysql> insert into CommaSeperateDemo values(1,'John','Taylor');
Query OK, 1 row affected (0.17 sec)

mysql> insert into CommaSeperateDemo values(2,'Carol','Taylor');
Query OK, 1 row affected (0.12 sec)

mysql> insert into CommaSeperateDemo values(3,'Johnson','T.');
Query OK, 1 row affected (0.16 sec)

登録データの確認

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

mysql> select *from CommaSeperateDemo;

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

+------+-----------+----------+
| Id   | FirstName | LastName |
+------+-----------+----------+
|    1 | John      | Taylor   |
|    2 | Carol     | Taylor   |
|    3 | Johnson   | T.       |
+------+-----------+----------+
3 rows in set (0.00 sec)

CONCAT()関数でカンマ区切りに変換する

CONCAT()関数を使って結果をカンマ区切りのリストとして取得する場合、基本構文は次のようになります。

SELECT CONCAT(カラム名1, ',', カラム名2, ',', カラム名3, ...) AS 別名 FROM テーブル名;

それでは、この構文を実際のクエリに当てはめてみます。

mysql> SELECT concat(Id, ',', FirstName,',', LastName) as CONCATEIDFIRSTANDLASTNAME from CommaSeperateDemo;

実行すると、以下のようにId・FirstName・LastNameが「,」で連結された1つの文字列として出力されます。

+---------------------------+
| CONCATEIDFIRSTANDLASTNAME |
+---------------------------+
| 1,John,Taylor             |
| 2,Carol,Taylor            |
| 3,Johnson,T.              |
+---------------------------+
3 rows in set (0.00 sec)

このように、CONCAT()関数にカンマ(',')を挟みながらカラムを指定するだけで、簡単にカンマ区切りのリスト形式でデータを取得できます。CSV形式の出力やアプリケーション側での文字列処理が必要な場面などで活用すると便利です。また、MySQL 5.7以降ではGROUP_CONCAT()関数を使えば、複数行の値をまとめてカンマ区切りの1つの文字列にすることも可能なので、用途に応じて使い分けるとよいでしょう。

  1. C#で文字列リストをカンマ区切りの文字列に変換する方法

    C#では、string.Joinメソッドを使うことで、文字列のList(リスト)を簡単にカンマ区切りの1つの文字列へ変換できます。string.Join(,, list);このような変換は、ユーザーが入力した複数のデータ(例:チェックボックスで選択された項目など)をまとめてカンマ区切りの文字列にし、データベースへのクエリ発行や後続の処理に利用したい場合に非常に便利です。基本的な使用例以下は、果物名を格納したList<string>をカンマ区切りの文字列に変換するシンプルな例です。using System; using System.Collections.Generic; nam

  2. Javaで文字列のリストをカンマ区切りの文字列に変換する方法

    この記事では、Javaを使って文字列のリスト(List)をカンマ区切りの1つの文字列に変換する方法について解説します。 リスト(List)とは リストとは、要素を順序どおりに格納し、インデックスを使ってアクセスできるコレクションです。要素の挿入・更新・削除・検索をインデックスベースで行えるメソッドが用意されており、重複した要素を持つこともできます。 今回実現したい処理は以下のとおりです。 入力例 Input list: [Java, Scala, Python] 期待される出力 The list with comma separated elements: Java, Scala, Pytho