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

MySQLで2つの列を連結する方法:CONCAT()関数の使い方を解説

MySQLで列を連結する基本

MySQLで2つの列の値を1つに連結したい場合は、CONCAT()関数を使用します。氏名と年齢のように、別々の列に保存されているデータを組み合わせて表示したい場面は多くあります。CONCAT()関数を使えば、SQLクエリだけで簡単に実現できます。

CONCAT()関数の構文

基本的な構文は以下のとおりです。

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

第2引数の ' '(スペース)を挟むことで、連結した値の間に空白を挿入できます。区切り文字は自由に指定可能です。

サンプルテーブルの作成

実際に動作を確認するため、まずテーブルを作成しましょう。

mysql> CREATE TABLE concatenateTwoColumnsDemo
    -> (
    -> StudentId int,
    -> StudentName varchar(200),
    -> StudentAge int
    -> );
Query OK, 0 rows affected (1.06 sec)

次に、サンプルデータを挿入します。

mysql> INSERT INTO concatenateTwoColumnsDemo VALUES(1,'Sam',21);
Query OK, 1 row affected (0.18 sec)

mysql> INSERT INTO concatenateTwoColumnsDemo VALUES(2,'David',24);
Query OK, 1 row affected (0.17 sec)

mysql> INSERT INTO concatenateTwoColumnsDemo VALUES(3,'Carol',22);
Query OK, 1 row affected (0.13 sec)

mysql> INSERT INTO concatenateTwoColumnsDemo VALUES(4,'Johnson',19);
Query OK, 1 row affected (0.17 sec)

登録データの確認

SELECT文ですべてのレコードを表示して確認します。

mysql> SELECT * FROM concatenateTwoColumnsDemo;

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

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Sam         |         21 |
|         2 | David       |         24 |
|         3 | Carol       |         22 |
|         4 | Johnson     |         19 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)

CONCAT()関数で2つの列を連結する

それでは、「StudentName」列と「StudentAge」列を連結してみましょう。名前と年齢の間にはスペースを挿入します。

mysql> SELECT CONCAT(StudentName, ' ', StudentAge) AS NameAndAgeColumn
FROM concatenateTwoColumnsDemo;

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

+------------------+
| NameAndAgeColumn |
+------------------+
| Sam 21           |
| David 24         |
| Carol 22         |
| Johnson 19       |
+------------------+
4 rows in set (0.00 sec)

補足:NULL値に注意しよう

CONCAT()関数を使う際の注意点として、引数のいずれかにNULLが含まれると、結果全体がNULLになるという特性があります。NULLが含まれる可能性がある列を扱う場合は、IFNULL()COALESCE()と組み合わせると安全です。

SELECT CONCAT(IFNULL(StudentName, ''), ' ', IFNULL(StudentAge, '')) AS NameAndAgeColumn
FROM concatenateTwoColumnsDemo;

また、区切り文字を自動的に挿入したい場合は、CONCAT_WS()関数(WS = With Separator)も便利です。第一引数に区切り文字を指定するだけで、複数の列をまとめて連結できます。

SELECT CONCAT_WS(' ', StudentName, StudentAge) AS NameAndAgeColumn
FROM concatenateTwoColumnsDemo;

このように、CONCAT()関数を活用すれば、MySQLで複数の列を柔軟に連結し、読みやすい形式でデータを出力できます。

  1. MySQLでNULLを含む列同士を連結する方法:IFNULL()を使った安全な文字列結合

    MySQLでNULL値を含む列を連結するには? MySQLで複数の列を連結する際、対象の列にNULLが含まれていると、CONCAT()関数の結果全体がNULLになってしまうという問題があります。これを回避するためには、IFNULL()関数を活用するのが効果的です。 この記事では、実際にテーブルを作成し、NULLを含むデータを連結する手順を具体的な例とともに解説します。 1. サンプルテーブルを作成する まず、学生の名前(姓・名)を格納するテーブルを作成しましょう。 mysql> create table DemoTable1793 ( StudentFirstName

  2. MySQLの1つのUPDATE文で2つの列を同時に更新する方法

    はじめにMySQLでは、1つのUPDATE文の中でSET句を一度だけ使えば、複数の列を同時に更新できます。各列の指定はカンマ(,)で区切って記述します。この記事では、実際にテーブルを作成し、1つのクエリで2つの列(FirstNameとLastName)を更新する手順を解説します。サンプルテーブルの作成まず、以下のようにCREATE TABLE文でテーブルを作成します。mysql> create table DemoTable1909 ( Id int NOT NULL, FirstName varchar(20), LastName varchar(20)