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

MySQLでGROUP_CONCATを使って複数のテキストレコードを1つに結合する方法

MySQLで複数のテキストレコード(行)を1つの文字列に結合したい場合は、GROUP_CONCAT()関数を使用します。この関数を使うと、複数の行に分かれているテキストデータを、指定した区切り文字で連結し、1つの結果として取得できます。

テーブルの作成

まず、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable1611
-> (
-> Value text
-> );
Query OK, 0 rows affected (0.86 sec)

レコードの挿入

次に、insertコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into DemoTable1611 values('John');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1611 values('is');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1611 values('learning');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1611 values('Java');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1611 values('with');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1611 values('MySQL Database');
Query OK, 1 row affected (0.12 sec)

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

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

mysql> select * from DemoTable1611;

実行すると、以下のような出力が得られます。

+----------------+
| Value |
+----------------+
| John |
| is |
| learning |
| Java |
| with |
| MySQL Database |
+----------------+
6 rows in set (0.00 sec)

GROUP_CONCATで複数のレコードを結合する

複数のテキストレコードを1つに結合するためのクエリは以下の通りです。separator句に半角スペースを指定することで、各レコードをスペース区切りで連結しています。

mysql> select group_concat(Value separator ' ') from DemoTable1611;

実行結果は以下のようになります。

+-------------------------------------------+
| group_concat(Value separator ' ') |
+-------------------------------------------+
| John is learning Java with MySQL Database |
+-------------------------------------------+
1 row in set (0.00 sec)

補足:GROUP_CONCATのポイント

GROUP_CONCAT()の区切り文字は、デフォルトではカンマ(,)です。separator句を指定すれば、スペースやハイフンなど任意の文字に変更できます。さらに、DISTINCTを組み合わせて重複を除外したり、ORDER BYで連結順序を制御したりすることも可能です。大量のデータを扱う場合は、group_concat_max_lenの設定値に注意してください。

  1. MySQLで複数の行レコードを1行にまとめる方法|CASE WHENを使ったクロス集計の基本

    MySQLでは、複数の行に分かれているレコードを、条件ごとに1行へまとめて表示したいケースがあります。たとえば「同じ会社の従業員データを国別に横並びで表示したい」場合などです。こうした処理には CASE WHEN を使うのが定番の方法です。本記事では、実際にテーブルを作成し、複数の行レコードを1行に結合する手順をサンプルSQL付きで解説します。1. サンプルテーブルを作成するまずは、会社名・従業員名・国名を持つテーブルを作成します。mysql> create table demo68 -> ( -> id int not null auto_increment primary

  2. Excelで複数のワークシートを1つのワークブックに結合する4つの方法

    Microsoft Excelで作業を行う際、複数のワークシートを1つにまとめることで、類似したデータを単一のワークブックに統合でき、データ管理が格段にしやすくなります。結合とは、複数のドキュメントを1つのファイルにまとめる操作のことです。本記事では、Excelで複数のワークシートを1つのワークブックに結合するさまざまな方法をご紹介します。 練習用にワークブックをダウンロードして、実際に手を動かしながら学ぶこともできます。 Excelで複数のワークシートを1つのワークブックに結合する4つの方法 すべてのデータを1つのワークブックに集めたり、複数のワークシートのデータを整理したりしたい場合は、以