MySQLでCONCAT()を効果的に結合する方法
Min-jun Kim
Dev Intern · Leapcell

Key Takeaways
CONCAT()
は、複数の文字列または列の値を単一の結果に結合します。- 引数のいずれかが
NULL
の場合、結果全体がNULL
になります。 CONCAT_WS()
を使用すると、カスタムセパレーターで文字列を結合でき、NULL
値は無視されます。
MySQLは、2つ以上の文字列を単一の文字列に結合するために CONCAT()
関数を提供します。これは、出力のフォーマット、列の値の結合、またはカスタム識別子の作成に特に役立ちます。この記事では、CONCAT()
の動作、構文、および実用的なユースケースについて説明します。
CONCAT()
とは何ですか?
MySQLの CONCAT()
関数は、複数の文字列を1つに連結(結合)するために使用されます。引数のいずれかが NULL
の場合、結果は NULL
になります。
構文
CONCAT(string1, string2, ..., stringN)
string1
、string2
、...stringN
: これらは、結合する文字列または列の値です。- すべての引数をまとめて結合した結果である単一の文字列を返します。
基本的な使い方
例1:単純な文字列連結
SELECT CONCAT('Hello', ' ', 'World') AS greeting;
結果:
greeting |
---|
Hello World |
例2:列の値を連結する
users
テーブルを想定します:
first_name | last_name |
---|---|
John | Doe |
Jane | Smith |
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
結果:
full_name |
---|
John Doe |
Jane Smith |
NULL値の処理
CONCAT()
のいずれかの引数が NULL
の場合、結果全体が NULL
になります。
例:
SELECT CONCAT('Name: ', NULL);
結果:
CONCAT('Name: ', NULL) |
---|
NULL |
これを回避するには、IFNULL()
または COALESCE()
を使用します。
SELECT CONCAT('Name: ', IFNULL(NULL, 'Unknown')) AS output;
結果:
output |
---|
Name: Unknown |
CONCAT_WS()
の使用
MySQLは、CONCAT_WS()
と呼ばれる特別な関数も提供しています。ここで、WS
は「With Separator」の略です。
構文
CONCAT_WS(separator, string1, string2, ..., stringN)
例:
SELECT CONCAT_WS('-', '2025', '04', '22') AS date_formatted;
結果:
date_formatted |
---|
2025-04-22 |
これは、一貫性のあるセパレーターを挿入し、NULL
値(スキップされる)を無視する場合に便利です。
ユースケース
first_name
とlast_name
を組み合わせてフルネームを作成する- 日付または時刻を読みやすい形式にフォーマットする
- 一意の識別子(例:注文コード)を生成する
- パスまたはURLを構築する
結論
MySQLの CONCAT()
関数は、文字列と列の値を結合するためのシンプルでありながら強力なツールです。ユーザーデータのフォーマット、値の結合、または条件付き表示の処理など、CONCAT()
とその仲間である CONCAT_WS()
は、SQLクエリから直接、クリーンで読みやすい出力を作成するのに役立ちます。
FAQs
結果全体が NULL
になります。フォールバックを提供するには、IFNULL()
を使用します。
CONCAT_WS()
は値の間にセパレーターを追加し、NULL
エントリをスキップします。
はい、たとえば CONCAT(first_name, ' ', last_name)
です。
Leapcellは、バックエンドプロジェクトをホストするための最適な選択肢です。
Leapcell は、Web ホスティング、非同期タスク、および Redis 用の次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、または Rust で開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い - リクエストも料金もありません。
無敵のコスト効率
- アイドル料金なしの従量課金制。
- 例:25ドルで、平均応答時間60ミリ秒で694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実用的な洞察を得るためのリアルタイムのメトリックとロギング。
容易なスケーラビリティと高パフォーマンス
- 高い同時実行性を容易に処理するための自動スケーリング。
- 運用上のオーバーヘッドはゼロ - 構築に集中するだけです。
詳細については、ドキュメントをご覧ください。
Xでフォローしてください:@LeapcellHQ