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

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関数を使えば、複数の列を自由な形式で簡単に連結できるため、コードや名称を組み合わせた表示などに幅広く活用できます。

  1. JavaでMySQLテーブルに1つのカラムのみを挿入する方法

    JavaとMySQLを連携させる際、テーブルの一部のカラムだけにデータを挿入したいケースはよくあります。その場合は、JDBCのINSERT INTOステートメントを使用します。挿入対象のカラム名を明示的に指定することで、他のカラムには影響を与えずに1つのカラムのみへ値を登録できます。この記事では、実際にテーブルを作成し、Javaのコードから「Name」という1つのカラムだけにデータを挿入する手順を解説します。1. 挿入先のテーブルを作成するまず、MySQLで以下のようにテーブルを作成しておきましょう。ここでは、varchar型の「Name」カラムを1つだけ持つシンプルなテーブルを用意します。m

  2. MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法

    はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実