MySQLで複数の列(カラム)の値を1つの列にまとめて表示する方法
MySQLで複数列の値を1つにまとめるにはCONCAT()関数を使う
2つ以上の列(カラム)の値を組み合わせて、結果を1つの列として表示したい場合は、MySQLのCONCAT()関数を使用します。
CONCAT()関数の引数には、文字列リテラルだけでなく列名を指定することもできます。これにより、複数の列の値を連結した結果を取得できます。
使用例
例えば、「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)
ポイント解説
- 上記のクエリでは、
CONCAT(ID, ', ', Name, ', ', Address)のように、各列の間に区切り用の文字列「', '」を挿入しています。これにより、読みやすい形式で値が連結されます。 AS 'ID, Name, Address'という別名(エイリアス)を付けることで、結果セットの列名がわかりやすくなります。- なお、連結対象の列にNULLが含まれている場合、CONCAT()関数は全体としてNULLを返す点に注意が必要です。NULLを空文字として扱いたい場合は、
CONCAT_WS()関数やIFNULL()関数を併用すると便利です。
このように、CONCAT()関数を使えば、SQLのSELECT文の中で簡単に複数列の値を1つにまとめることができます。
-
MySQLのCOUNT(*)とGROUP BYを組み合わせて、列の各個別値の出現回数を確認する方法
はい、可能です。集計関数 COUNT(*) を GROUP BY 句と組み合わせて使用することで、MySQLテーブルの列に含まれるそれぞれの個別の値が何回表示されるかを確認できます。まず、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable1425 -> ( -> JoiningYear int -> ); Query OK, 0 rows affected (0.76 sec)続いて
-
MySQLで2つの異なる列の値を1つの列のリストとして選択・表示する方法(UNION ALLの活用)
UNION ALLを使って2つの列の値を1つのリストにまとめる方法MySQLで、異なる2つの列(カラム)に格納されている値を、1つの列としてまとめて取得したい場合はUNION ALLを使用します。UNION ALLは、複数のSELECT文の結果をそのまま連結して表示できる便利な構文です。ここでは、実際にテーブルを作成して動作を確認してみましょう。1. テーブルの作成まず、2つの名前列を持つテーブルを作成します。mysql> create table DemoTable1813 ( Name1 varchar(20), Name2 varchar(20) )