MySQLテーブルの複数列の値を組み合わせる方法|CONCAT()関数の使い方を解説
MySQLテーブルの2つ以上の列の値を組み合わせるには、CONCAT()文字列関数を使用します。MySQLのCONCAT()関数は、2つ以上の文字列を1つに連結するための基本的な関数です。
基本構文
CONCAT(String1, String2, …, StringN)
引数には、連結したい文字列や列の値を指定します。引数の数に制限はなく、必要なだけ指定することができます。
文字列を連結する簡単な例
mysql> SELECT CONCAT('Ram', 'is', 'a', 'good', 'boy') AS Remarks;
+---------------+
| Remarks |
+---------------+
| Ramisagoodboy |
+---------------+
1 row in set (0.00 sec)
このように、CONCAT()関数に渡した文字列がそのまま順番に連結されて返されます。なお、単語の間にスペースを挿入したい場合は、スペースを含む文字列を引数として渡す必要があります。
テーブルの複数列の値を組み合わせる実例
同じ要領で、CONCAT()関数を使えばテーブルの2つ以上の列の値を組み合わせることができます。例えば、「Student」というテーブルがあり、学生のID・名前・住所を1つの列にまとめて表示したい場合は、次のようなクエリを記述します。
mysql> SELECT Id, Name, Address,
CONCAT(Id, ', ', Name, ', ', Address) AS 'ID, Name, Address'
FROM Student;
+------+---------+---------+--------------------+
| Id | Name | Address | ID, Name, Address |
+------+---------+---------+--------------------+
| 1 | Gaurav | Delhi | 1, Gaurav, Delhi |
| 2 | Aarav | Mumbai | 2, Aarav, Mumbai |
| 15 | Harshit | Delhi | 15, Harshit, Delhi |
| 20 | Gaurav | Jaipur | 20, Gaurav, Jaipur |
+------+---------+---------+--------------------+
4 rows in set (0.00 sec)
この結果のように、各列の値がカンマとスペースで区切られた1つの文字列として出力されます。AS句を使って別名を付けることで、結果セットの見出しも分かりやすくなります。
注意点:NULL値の扱い
CONCAT()関数は、引数のいずれかひとつでもNULLが含まれていると、結果全体がNULLになってしまいます。NULLが含まれる可能性のある列を扱う場合は、IFNULL()関数などと組み合わせてNULLを空文字列に置き換えるのが安全です。
便利な代替手段:CONCAT_WS()関数
区切り文字を毎回引数として渡すのが面倒な場合は、最初の引数に区切り文字を指定できるCONCAT_WS()関数を使うと、より簡潔に記述できます。
mysql> SELECT CONCAT_WS(', ', Id, Name, Address) AS 'ID, Name, Address'
FROM Student;
このように書くことで、各値の間に自動的に「, 」が挿入され、コードも読みやすくなります。また、CONCAT_WS()はNULL以外の引数のみを連結するため、NULL値による意図しない結果を避けやすくなります。
-
MySQLテーブルのカラム名を取得する方法【SHOW・DESCRIBE活用ガイド】
SHOWコマンドでカラム名を取得するMySQLでは、SHOWコマンドを使うことで、テーブルのカラム(列)名を簡単に確認できます。カラム名だけでなく、データ型やNULL許可、キー情報なども一緒に取得できるのが特徴です。基本構文show columns from テーブル名;サンプルテーブルの作成まず、動作確認用に「DemoTable」というテーブルを作成します。mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName varchar(
-
MySQLで複数のフィールドから最小値を取得する方法|LEAST()関数の使い方
MySQLで2つ以上のフィールド(カラム)の中から最小値を求めたい場合は、LEAST()関数を使用します。LEAST()関数は、引数として渡された複数の値の中で最も小さい値を返してくれる便利な関数です。LEAST()関数の基本構文SELECT LEAST(カラム名1, カラム名2, ...N) FROM テーブル名;それでは、実際にテーブルを作成し、LEAST()関数の動きを確認していきましょう。ステップ1:テーブルを作成するまず、日付型のカラムを3つ持つテーブルを作成します。mysql> create table DemoTable -> ( -> Date1 date,