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

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()と組み合わせるとよいでしょう。

  1. MySQLのNOT演算子の使い方|!演算子との違いを解説

    MySQLでは、論理否定(NOT)を表現する方法として「!」演算子も使用できますが、同じ結果を得るのであれば「NOT」キーワードを使うことが推奨されます。MySQLには標準でNOTキーワードが用意されているためです。この記事では、実際にテーブルを作成し、NOTキーワードの動作を確認していきます。 サンプルテーブルの作成 まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1560     -> (     -> Value1 int  &n

  2. MySQLクエリの入力方法|基本ルールから複数行クエリまで解説

    MySQLクエリの入力方法コンソールでクエリを入力する前に、まずサーバーに正しく接続できているかを確認することが重要です。以下のクエリを実行すると、使用中のサーバーのバージョン番号と現在の日付が表示されます。mysql> SELECT VERSION(), CURRENT_DATE;ポイント:関数「VERSION()」や「CURRENT_DATE」は大文字・小文字を区別しません。つまり、「version()」「Version()」「vERsion()」など、いずれも同じ意味として処理されます。「CURRENT_DATE」についても同様です。MySQLクエリ実行時の基本ルールSQLクエリの