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の設定値に注意してください。
-
MySQLで複数の行レコードを1行にまとめる方法|CASE WHENを使ったクロス集計の基本
MySQLでは、複数の行に分かれているレコードを、条件ごとに1行へまとめて表示したいケースがあります。たとえば「同じ会社の従業員データを国別に横並びで表示したい」場合などです。こうした処理には CASE WHEN を使うのが定番の方法です。本記事では、実際にテーブルを作成し、複数の行レコードを1行に結合する手順をサンプルSQL付きで解説します。1. サンプルテーブルを作成するまずは、会社名・従業員名・国名を持つテーブルを作成します。mysql> create table demo68 -> ( -> id int not null auto_increment primary
-
Excelで複数のワークシートを1つのワークブックに結合する4つの方法
Microsoft Excelで作業を行う際、複数のワークシートを1つにまとめることで、類似したデータを単一のワークブックに統合でき、データ管理が格段にしやすくなります。結合とは、複数のドキュメントを1つのファイルにまとめる操作のことです。本記事では、Excelで複数のワークシートを1つのワークブックに結合するさまざまな方法をご紹介します。 練習用にワークブックをダウンロードして、実際に手を動かしながら学ぶこともできます。 Excelで複数のワークシートを1つのワークブックに結合する4つの方法 すべてのデータを1つのワークブックに集めたり、複数のワークシートのデータを整理したりしたい場合は、以