メインコンテンツまでスキップ
バージョン: 26.x

CONCAT

説明

CONCAT関数は複数の文字列を順番に連結して1つの文字列にします。この関数は可変個の引数をサポートしており、文字列処理において最も基本的でよく使用される関数の1つです。データ連結、レポート生成、動的SQL構築などのシナリオで広く使用されています。いずれかの引数がNULLの場合、結果全体がNULLになることに注意してください。

構文

CONCAT(<expr> [, <expr> ...])

パラメータ

Parameterデスクリプション
<expr>連結される文字列式。文字列定数、カラム名、またはその他の式を指定できます。型: VARCHAR

戻り値

VARCHAR型を返し、すべての引数を連結した文字列を表します。

連結ルール:

  • 引数の順序で文字列を連結します
  • 任意の数の引数をサポートします(最低1個)
  • UTF-8マルチバイト文字の正しい連結をサポートします
  • 数値やその他の型は自動的に文字列に変換されます

特殊なケース:

  • いずれかの引数がNULLの場合、NULLを返します(これがCONCAT_WSとの主な違いです)
  • 引数が提供されない場合、構文エラーになります
  • 空文字列の引数は連結結果に影響しません
  • 非文字列型との混在をサポートします

  1. 基本的な文字列連結
SELECT CONCAT('a', 'b'), CONCAT('a', 'b', 'c');
+------------------+-----------------------+
| CONCAT('a', 'b') | CONCAT('a', 'b', 'c') |
+------------------+-----------------------+
| ab | abc |
+------------------+-----------------------+
  1. NULL値処理(主要機能)
SELECT CONCAT('a', NULL, 'c'), CONCAT('hello', NULL);
+------------------------+---------------------+
| CONCAT('a', NULL, 'c') | CONCAT('hello', NULL) |
+------------------------+---------------------+
| NULL | NULL |
+------------------------+---------------------+
  1. 空文字列の処理
SELECT CONCAT('hello', '', 'world'), CONCAT('', 'test', '');
+-----------------------------+------------------------+
| CONCAT('hello', '', 'world') | CONCAT('', 'test', '') |
+-----------------------------+------------------------+
| helloworld | test |
+-----------------------------+------------------------+
  1. 数値と文字列の混在
SELECT CONCAT('User', 123), CONCAT('Price: $', 99.99);
+---------------------+---------------------------+
| CONCAT('User', 123) | CONCAT('Price: $', 99.99) |
+---------------------+---------------------------+
| User123 | Price: $99.99 |
+---------------------+---------------------------+
  1. 複数の引数の連結
SELECT CONCAT('A', 'B', 'C', 'D', 'E'), CONCAT('1', '2', '3', '4', '5');
+----------------------------------+----------------------------------+
| CONCAT('A', 'B', 'C', 'D', 'E') | CONCAT('1', '2', '3', '4', '5') |
+----------------------------------+----------------------------------+
| ABCDE | 12345 |
+----------------------------------+----------------------------------+
  1. UTF-8マルチバイト文字の連結
SELECT CONCAT('ṭṛì', ' ', 'ḍḍumai'), CONCAT('Hello', ' ', 'ṭṛì', ' ', 'ḍḍumai');
+------------------------------+--------------------------------------+
| CONCAT('ṭṛì', ' ', 'ḍḍumai') | CONCAT('Hello', ' ', 'ṭṛì', ' ', 'ḍḍumai') |
+------------------------------+--------------------------------------+
| ṭṛì ḍḍumai | Hello ṭṛì ḍḍumai |
+------------------------------+--------------------------------------+
  1. パスとURL構築
SELECT CONCAT('/home/', 'user/', 'file.txt'), CONCAT('https://', 'www.example.com', '/api');
+--------------------------------------+----------------------------------------------+
| CONCAT('/home/', 'user/', 'file.txt') | CONCAT('https://', 'www.example.com', '/api') |
+--------------------------------------+----------------------------------------------+
| /home/user/file.txt | https://www.example.com/api |
+--------------------------------------+----------------------------------------------+
  1. メールアドレスの構築
SELECT CONCAT('user', '@', 'example.com'), CONCAT('admin.', 'support', '@', 'company.org');
+------------------------------------+-----------------------------------------------+
| CONCAT('user', '@', 'example.com') | CONCAT('admin.', 'support', '@', 'company.org') |
+------------------------------------+-----------------------------------------------+
| user@example.com | admin.support@company.org |
+------------------------------------+-----------------------------------------------+