Search

文字列の結合
CONCAT()

unknown

CONCAT(str1, str2, ... )

引数を連結した文字列を返します。 引数にNULLが含まれる場合はNULLを返します。 引数に数値を指定した場合は、同等の文字列に変換されます。

mysql> SELECT CONCAT('PHP', '&', 'JavaScript', 'Room') AS SiteName; Enter
+--------------------+
| SiteName           |
+--------------------+
| PHP&JavaScriptRoom |
+--------------------+
1 row in set (0.00 sec)

# tbl_Addressテーブルの内容
mysql> SELECT * FROM tbl_Address; Enter
+--------+----------+----------+-------------------------+
| UserID | Zip      | Ken      | Addr                    |
+--------+----------+----------+-------------------------+
| U001   | 155-0031 | 東京都   | 世田谷区下北1-1-1       |
| U002   | 160-0023 | 東京都   | 新宿区西新宿9-8-7       |
| U003   | 079-1274 | 北海道   | 赤平市エルム町4-2-5     |
| U004   | 061-3254 | 北海道   | 石狩市樽川3-1-1         |
| U005   | 155-0031 | 神奈川県 | 横浜市緑区いぶき野2-100 |
| U006   | 155-0031 | 神奈川県 | 横浜市緑区白山10-33-2   |
| U007   | 155-0031 | 沖縄県   | 石垣市石垣9000          |
+--------+----------+----------+-------------------------+
7 rows in set (0.00 sec)

# KenフィールドとAddrフィールドを結合し、Addressという別名で取得
mysql> SELECT UserID, CONCAT(Ken, Addr) AS Address Enter
    -> FROM tbl_Address ORDER BY UserID; Enter
+--------+---------------------------------+
| UserID | Address                         |
+--------+---------------------------------+
| U001   | 東京都世田谷区下北1-1-1         |
| U002   | 東京都新宿区西新宿9-8-7         |
| U003   | 北海道赤平市エルム町4-2-5       |
| U004   | 北海道石狩市樽川3-1-1           |
| U005   | 神奈川県横浜市緑区いぶき野2-100 |
| U006   | 神奈川県横浜市緑区白山10-33-2   |
| U007   | 沖縄県石垣市石垣9000            |
+--------+---------------------------------+
7 rows in set (0.00 sec)

区切り文字で文字列を結合
CONCAT_WS()

unknown

CONCAT_WS(separator, str1, str2, ... )

この関数は、区切り文字が付いたCONCAT()関数の特殊型です。 区切り文字separatorで第2引数以降の引数を連結します。 区切り文字separatorNULLの場合、NULLが返ります。

第2引数以降の引数にNULLが指定されている場合はNULLをスキップして結合されます。 MySQL 4.1.1 より前のバージョンの場合は、NULLだけでなく、空文字列もスキップされます。

mysql> SELECT CONCAT_WS(',', 'FirstName', 'SecondName', 'LastName') Enter
    -> AS FullName; Enter
+-------------------------------+
| FullName                      |
+-------------------------------+
| FirstName,SecondName,LastName |
+-------------------------------+
1 row in set (0.00 sec)

# 第2引数以降の引数が NULL の場合は、スキップされます
mysql> SELECT CONCAT_WS(',', 'FirstName', NULL, 'LastName') AS FullName; Enter
+--------------------+
| FullName           |
+--------------------+
| FirstName,LastName |
+--------------------+
1 row in set (0.00 sec)
# tbl_Addressテーブルの内容
mysql> SELECT * FROM tbl_Customer; Enter
+--------+-----------+----------+------+------+
| UserID | FirstName | LastName | Sex  | Age  |
+--------+-----------+----------+------+------+
| U001   | 花子      | 鈴木     | f    |   21 |
| U002   | 太郎      | 田中     | m    |   30 |
| U003   | 一郎      | 鈴木     | m    |   45 |
| U004   | 萌子      | 山口     | f    |   18 |
| U005   | 愛        | 森永     | f    |   21 |
| U006   | 太郎      | 鈴木     | m    |   22 |
| U007   | 花子      | 佐藤     | f    |   35 |
+--------+-----------+----------+------+------+
7 rows in set (0.00 sec)

# LastNameフィールドとFirstNameフィールドを全角スペースで結合し、
# FullNameという別名で取得
mysql> SELECT UserID, CONCAT_WS(' ', LastName, FirstName) AS FullName Enter
    -> FROM tbl_Customer ORDER BY UserID; Enter
+--------+------------+
| UserID | FullName   |
+--------+------------+
| U001   | 鈴木 花子 |
| U002   | 田中 太郎 |
| U003   | 鈴木 一郎 |
| U004   | 山口 萌子 |
| U005   | 森永 愛   |
| U006   | 鈴木 太郎 |
| U007   | 佐藤 花子 |
+--------+------------+
7 rows in set (0.00 sec)

このページで使用しているサンプルデータ

unknown

サンプルデータ
# テーブル(tbl_Address)作成
CREATE TABLE IF NOT EXISTS tbl_Address(
UserID VARCHAR(4) NOT NULL PRIMARY KEY,
Zip CHAR(9) DEFAULT NULL,
Ken CHAR(10) DEFAULT NULL,
Addr VARCHAR(200) DEFAULT NULL
);

# データ挿入
INSERT INTO tbl_Address (UserID,Zip,Ken,Addr) VALUES
('U001','155-0031','東京都','世田谷区下北1-1-1'),
('U002','160-0023','東京都','新宿区西新宿9-8-7'),
('U003','079-1274','北海道','赤平市エルム町4-2-5'),
('U004','061-3254','北海道','石狩市樽川3-1-1'),
('U005','155-0031','神奈川県','横浜市緑区いぶき野2-100'),
('U006','155-0031','神奈川県','横浜市緑区白山10-33-2'),
('U007','155-0031','沖縄県','石垣市石垣9000');

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop

polarized women