MySQLで名と姓をCONCAT関数で結合し、フルネームとして1つの列に表示する方法
はじめに
MySQLでは、テーブル内の「名(FirstName)」と「姓(LastName)」など、複数の列に分かれたデータを1つの文字列として結合したいケースがよくあります。そんなときに便利なのが CONCAT() 関数です。この記事では、実際にテーブルを作成し、名と姓を結合してフルネームとして表示するまでの手順を解説します。
サンプルテーブルの作成
まず、FirstName と LastName の2つの列を持つテーブルを作成します。
mysql> create table DemoTable
(
FirstName varchar(50),
LastName varchar(50)
);
Query OK, 0 rows affected (0.63 sec)
テストデータの挿入
続いて、INSERT文を使ってレコードを挿入します。
mysql> insert into DemoTable values('Chris','Brown');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('David','Miller');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('John','Doe');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('Adam','Smith');
Query OK, 1 row affected (0.25 sec)登録済みレコードの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable;
実行結果は以下の通りです。
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Chris | Brown |
| David | Miller |
| John | Doe |
| Adam | Smith |
+-----------+----------+
4 rows in set (0.00 sec)
CONCAT() でフルネームを表示する
ここからが本題です。次のようにCONCAT() 関数を使えば、名と姓をスペース区切りで結合し、「FullName」という1つの列として表示できます。AS句を使うことで、結果セットの列見出しにも「FullName」というわかりやすい別名を付けています。
mysql> select concat(FirstName,' ',LastName) AS FullName from DemoTable;
実行すると、以下のような出力が得られます。
+--------------+
| FullName |
+--------------+
| Chris Brown |
| David Miller |
| John Doe |
| Adam Smith |
+--------------+
4 rows in set (0.00 sec)
補足ポイント
- CONCAT() の引数には任意の数の文字列や列を指定でき、カンマ区切りで連結されます。
- 上記の例では名と姓の間に半角スペース(' ')を挿入していますが、区切り文字は自由に変更できます。
- いずれかの引数に NULL が含まれる場合、CONCAT() の戻り値は NULL になる点に注意してください。NULL を無視して連結したい場合は CONCAT_WS() 関数の利用を検討しましょう。
まとめ
MySQLで名と姓を1つの列にフルネームとして表示するには、CONCAT() 関数を使うのが最もシンプルな方法です。AS句で別名を指定すれば、出力結果も読みやすくなります。氏名以外にも、住所や電話番号など複数の列を組み合わせて表示したい場面で幅広く活用できるので、ぜひ覚えておきましょう。
-
【MySQL】名前列の最後のスペースより左側の文字列をすべて抽出する方法
名前データが格納された列から、フルネームのうち「最後のスペースより左側」の部分だけを取り出したい場面はよくあります。例えば、姓名が混在するデータから名(ファーストネーム)部分を抽出するようなケースです。MySQLでは LEFT()、LENGTH()、LOCATE()、REVERSE() の各関数を組み合わせることで、この処理を簡単に実現できます。 1. サンプルテーブルの作成 まず、名前を格納するテーブルを作成します。 mysql> create table DemoTable1939 ( F
-
MySQLで重複しない日付(個別の値)を表示する方法
MySQLでは、datetime型のカラムから「日付のみ」を基準に重複を排除してデータを取得したいケースがよくあります。例えば、同じ日に複数の注文や出荷記録がある場合、日付単位で1件だけ取り出したいときなどです。本記事では、GROUP BYとDATE()関数を組み合わせて、重複しない日付ごとのレコードを表示する方法を解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成しましょう。ここでは、出荷日時(ShippingDate)と顧客名(CustomerName)を持つテーブルを定義します。 mysql> create table DemoTable1996 (