MySQLで文字列を連結するには?CONCAT()関数の使い方を実例付きで解説
MySQLでは、組み込み関数のCONCAT()を使うことで、複数の文字列やカラムの値を簡単に連結できます。SQL Serverの「+」やOracleの「||」のような連結演算子とは異なり、MySQLではCONCAT()関数を使用するのが標準的な方法です。
CONCAT()関数の基本構文
CONCAT()関数の基本的な書式は以下のとおりです。引数として渡したすべての値が順番に連結され、1つの文字列として返されます。
SELECT CONCAT('(', yourColumnName1, ',', yourColumnName2, ',', yourColumnName3, ...N, ')') AS anyVariableName
FROM yourTableName;サンプルテーブルを作成する
それでは、実際に動きを確認してみましょう。まずは連結用のデモテーブルを作成します。
mysql> create table Concatenation_OperatorDemo -> ( -> VendorId int, -> VendorName varchar(100), -> VendorCountry varchar(100) -> ); Query OK, 0 rows affected (0.69 sec)
レコードを挿入する
次に、INSERT文を使ってサンプルデータを登録します。
mysql> insert into Concatenation_OperatorDemo values(101,'Carol','US'); Query OK, 1 row affected (0.19 sec) mysql> insert into Concatenation_OperatorDemo values(102,'Bob','UK'); Query OK, 1 row affected (0.18 sec) mysql> insert into Concatenation_OperatorDemo values(103,'John','US'); Query OK, 1 row affected (0.14 sec) mysql> insert into Concatenation_OperatorDemo values(104,'David','UK'); Query OK, 1 row affected (0.25 sec)
登録したデータを確認する
SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認しましょう。
mysql> select *from Concatenation_OperatorDemo;
実行結果は以下のとおりです。
+----------+------------+---------------+ | VendorId | VendorName | VendorCountry | +----------+------------+---------------+ | 101 | Carol | US | | 102 | Bob | UK | | 103 | John | US | | 104 | David | UK | +----------+------------+---------------+ 4 rows in set (0.00 sec)
CONCAT()関数で3つのカラムを連結する
準備ができたので、CONCAT()関数を使って3つのカラム(VendorId、VendorName、VendorCountry)を1つの文字列に連結してみます。各値をカンマで区切り、全体を括弧で囲む形式にしています。
mysql> select concat('(', VendorId, ',', VendorName, ',', VendorCountry, ')') as ConcatenationDemo
-> from Concatenation_OperatorDemo;実行結果は以下のとおりです。
+-------------------+ | ConcatenationDemo | +-------------------+ | (101,Carol,US) | | (102,Bob,UK) | | (103,John,US) | | (104,David,UK) | +-------------------+ 4 rows in set (0.00 sec)
まとめ
このように、MySQLで文字列やカラムを連結したい場合はCONCAT()関数を使用します。固定文字列とカラムの値を自由に組み合わせられるため、CSV形式の出力や表示用フォーマットの生成など、さまざまな場面で活用できます。なお、連結対象にNULLが含まれる場合、CONCAT()の戻り値もNULLになる点には注意が必要です。NULLを空文字として扱いたい場合は、IFNULL()やCOALESCE()と組み合わせるとよいでしょう。
-
MySQLのNOT演算子の使い方|!演算子との違いを解説
MySQLでは、論理否定(NOT)を表現する方法として「!」演算子も使用できますが、同じ結果を得るのであれば「NOT」キーワードを使うことが推奨されます。MySQLには標準でNOTキーワードが用意されているためです。この記事では、実際にテーブルを作成し、NOTキーワードの動作を確認していきます。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1560 -> ( -> Value1 int &n
-
MySQLクエリの入力方法|基本ルールから複数行クエリまで解説
MySQLクエリの入力方法コンソールでクエリを入力する前に、まずサーバーに正しく接続できているかを確認することが重要です。以下のクエリを実行すると、使用中のサーバーのバージョン番号と現在の日付が表示されます。mysql> SELECT VERSION(), CURRENT_DATE;ポイント:関数「VERSION()」や「CURRENT_DATE」は大文字・小文字を区別しません。つまり、「version()」「Version()」「vERsion()」など、いずれも同じ意味として処理されます。「CURRENT_DATE」についても同様です。MySQLクエリ実行時の基本ルールSQLクエリの