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

MySQLで2つ以上の文字列を連結するには?CONCAT関数の使い方を解説

MySQLでは、CONCAT()という文字列関数を使用することで、2つ以上の文字列を1つの文字列に連結(結合)することができます。氏名の姓と名を組み合わせたり、住所データを整形したりと、実務でも頻繁に活用される便利な関数です。

CONCAT関数の基本構文

CONCAT(String1, String2, …, StringN)

引数には、連結したい文字列をカンマ区切りで指定します。指定できる引数の数に厳密な上限はなく、2つ以上であれば任意の数の文字列を渡すことが可能です。また、引数には文字列リテラルだけでなく、テーブルのカラム名を指定することもできます。

使用例

以下は、複数の文字列を連結して1つの文字列として取得する例です。

mysql> Select CONCAT('Ram','is','a','good','boy') AS Remarks;

+---------------+
| Remarks       |
+---------------+
| Ramisagoodboy |
+---------------+

1 row in set (0.00 sec)

このように、指定したすべての文字列がそのまま順番に連結されて返されます。上記の例では単語間にスペースが含まれていないため「Ramisagoodboy」という結果になっていますが、スペースを挿入したい場合は CONCAT('Ram', ' ', 'is', ' ', 'a', ' ', 'good', ' ', 'boy') のように、半角スペースを引数として挟むことで対応できます。

注意点:NULLが含まれる場合

CONCAT関数は、引数のうち1つでもNULLが含まれていると、結果全体がNULLになります。カラムの値を使って連結する場合などは、NULLの可能性がある値に対してIFNULL()やCOALESCE()関数を併用すると安全です。

SELECT CONCAT(IFNULL(last_name, ''), ' ', IFNULL(first_name, '')) AS full_name FROM users;

関連関数:CONCAT_WS

区切り文字を挟みながら文字列を連結したい場合は、CONCAT_WS()関数が便利です。第1引数に区切り文字を指定し、以降の引数に連結したい文字列を渡します。

mysql> SELECT CONCAT_WS('-', '2024', '01', '15') AS date_str;

+------------+
| date_str   |
+------------+
| 2024-01-15 |
+------------+

このように、MySQLの文字列連結にはCONCAT()を中心に、用途に応じたさまざまな関数が用意されています。NULLの扱いに注意しながら、目的に合った関数を選択して活用しましょう。

  1. JavaScriptで2つ以上の文字列を結合する3つの方法(+演算子・+=・concat())

    JavaScriptで2つ以上の文字列を結合する方法を、具体的なコード例とともにわかりやすく解説します。 JavaScriptには、2つ以上の文字列を結合するためのさまざまな方法があります。代表的なのは、プラス演算子 +、プラスイコール演算子 +=、そして concat() メソッドの3つです。 なお、+ と += は代入演算子と呼ばれます。 それでは、3つの方法をすべて実際に試してみましょう! プラス演算子(+) たとえば、firstName と lastName という2つの変数があり、その結合した値を fullName という3つ目の変数に代入したいとします。この場合、次のように書くこと

  2. C#で2つの文字列を連結する方法【string.Concatメソッドの使い方】

    C#で2つの文字列を連結(結合)するには、String.Concatメソッドを使用します。このメソッドは、指定した複数の文字列をひとつにつなげた新しい文字列を返します。例えば、str1とstr2という2つの文字列変数を連結したい場合は、次のようにConcatメソッドの引数として渡します。string str3 = string.Concat(str1, str2);サンプルコード以下は、実際に2つの文字列「Brad」と「Pitt」を連結して表示するプログラムの例です。using System; class Program {    static void Mai