MySQLで2つの列の値を1つの列に連結する方法|CONCAT関数でハイフン区切りの文字列を作る
MySQLでは、CONCAT関数を使うことで、2つ以上の列の値を1つの列に連結できます。引数として区切り文字(今回はハイフン「-」)を指定することも可能です。
ここでは、サンプルテーブルを作成し、実際に2つの列をハイフンで区切りながら連結する手順を解説します。
手順1:テーブルを作成する
まず、CREATE TABLE文でテーブルを作成します。
mysql> create table DemoTable835(
CountryCode int,
CountryName varchar(100)
);
Query OK, 0 rows affected (0.63 sec)
手順2:レコードを挿入する
次に、INSERT文を使ってテーブルにデータを登録します。
mysql> insert into DemoTable835 values(100,'US'); Query OK, 1 row affected (0.36 sec) mysql> insert into DemoTable835 values(101,'UK'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable835 values(102,'AUS'); Query OK, 1 row affected (0.26 sec) mysql> insert into DemoTable835 values(103,'ENG'); Query OK, 1 row affected (0.09 sec)
手順3:テーブルの内容を確認する
SELECT文ですべてのレコードを表示して確認します。
mysql> select *from DemoTable835;
実行すると、以下のような結果が出力されます。
+-------------+-------------+ | CountryCode | CountryName | +-------------+-------------+ | 100 | US | | 101 | UK | | 102 | AUS | | 103 | ENG | +-------------+-------------+ 4 rows in set (0.00 sec)
手順4:CONCAT関数で2つの列を連結する
それでは、2つの列の値を1つの列に連結するクエリを見てみましょう。列と列の間にハイフン('-')を挟んで指定します。
mysql> select concat(CountryCode,'-',CountryName) from DemoTable835;
実行結果
クエリを実行すると、以下のように「国コード-国名」の形式で連結された値が1つの列として出力されます。
+-------------------------------------+ | concat(CountryCode,'-',CountryName) | +-------------------------------------+ | 100-US | | 101-UK | | 102-AUS | | 103-ENG | +-------------------------------------+ 4 rows in set (0.00 sec)
補足:AS句で別名を付ける
そのまま実行すると列名が関数名になりますが、AS句を使えば見やすい別名を付けることができます。
mysql> select concat(CountryCode,'-',CountryName) AS CountryInfo from DemoTable835;
このように、MySQLのCONCAT関数を使えば、複数の列を自由な形式で簡単に連結できるため、コードや名称を組み合わせた表示などに幅広く活用できます。
-
JavaでMySQLテーブルに1つのカラムのみを挿入する方法
JavaとMySQLを連携させる際、テーブルの一部のカラムだけにデータを挿入したいケースはよくあります。その場合は、JDBCのINSERT INTOステートメントを使用します。挿入対象のカラム名を明示的に指定することで、他のカラムには影響を与えずに1つのカラムのみへ値を登録できます。この記事では、実際にテーブルを作成し、Javaのコードから「Name」という1つのカラムだけにデータを挿入する手順を解説します。1. 挿入先のテーブルを作成するまず、MySQLで以下のようにテーブルを作成しておきましょう。ここでは、varchar型の「Name」カラムを1つだけ持つシンプルなテーブルを用意します。m
-
MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法
はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実