気持ちが良いIT技術を学ぶ

MySQL 文字結合 CONCAT_WS

2023年08月20日に更新, By 管理者

CONCAT_WS関数は、指定した区切り文字を使用して複数の文字列を結合する際に使用。
CONCAT_WSは "Concatenate With Separator" で区切り文字を指定して文字列を結合するための便利な関数です。

基本的な構文

CONCAT_WS(separator, string1, string2, ...);

「separator」は結合する際の区切り文字、「string1」、「string2」などは結合する文字列の引数です。


CONCAT_WS関数は、引数として渡された文字列を順番に結合し、区切り文字で区切って新しい文字列を生成します。

例えば)

mysql> SELECT CONCAT_WS(', ', 'Hello', 'World') AS result;
+--------------+
| result       |
+--------------+
| Hello, World |
+--------------+
1 row in set (0.00 sec)

上記は、"Hello" と "World" を ", "(カンマとスペース)で区切って結合し、"Hello, World" という新しい文字列を生成し、resultという名前のカラムで表示します。

テーブルのカラムを結合して表示する場合も、CONCAT_WS関数は便利です。
例えば)

mysql> SELECT CONCAT_WS(', ', last_name, first_name) AS full_name FROM users;
+----------------+
| full_name      |
+----------------+
| 鈴木, 太郎     |
+----------------+
1 row in set (0.00 sec)


users テーブルから last_name(姓) と first_name(名) カラムの値を", "(カンマとスペース)で区切って結合し、full_name(姓名) という新しいカラム名で表示されます。

CONCAT_WS関数は、区切り文字を自由に設定できるため、カンマやスペース以外の区切り文字を使いたい場合にも適しています。
また、NULL 値を含む場合にも区切り文字が正しく処理されます。

CONCAT_WS関数は複数の文字列を区切り文字で結合する際によく使う関数です。