MySQLの連結演算子がわかりません。
私は連結のためにこのコードを試しました:
SELECT vend_name || ' (' || vend_country || ')'
FROM Vendors
ORDER BY vend_name;
しかし、それはうまくいきませんでした。文字列を連結するには、どの演算子を使用する必要がありますか?
MySQLの連結演算子がわかりません。
私は連結のためにこのコードを試しました:
SELECT vend_name || ' (' || vend_country || ')'
FROM Vendors
ORDER BY vend_name;
しかし、それはうまくいきませんでした。文字列を連結するには、どの演算子を使用する必要がありますか?
||
はANSI標準の文字列連結演算子であり、ほとんどのデータベース(特に、MS SQL Serverではサポートされていません)でサポートされています。MySQLもそれをサポートしていますが、SET sql_mode='PIPES_AS_CONCAT';
最初SET sql_mode='ANSI';
にサポートする必要があります。
ORACLEタイプの連結を使用していました。MySQLは
SELECT CONCAT(vend_name, '(', vend_country, ')')
関数を呼び出し、CONCAT()
値をコンマで区切ります。
MySQL CONCAT関数は、2つの文字列を連結して1つの文字列を形成するために使用されます。次の例を試してください。
mysql> SELECT CONCAT('FIRST ', 'SECOND');
+----------------------------+
| CONCAT('FIRST ', 'SECOND') |
+----------------------------+
| FIRST SECOND |
+----------------------------+
1 row in set (0.00 sec)
CONCAT関数をより詳細に理解するには、次のレコードを持つemployee_tblテーブルについて考えてみます。
mysql> SELECT CONCAT(id, name, work_date)
-> FROM employee_tbl;
+-----------------------------+
| CONCAT(id, name, work_date) |
+-----------------------------+
| 1John2007-01-24 |
| 2Ram2007-05-27 |
| 3Jack2007-05-06 |
| 3Jack2007-04-06 |
| 4Jill2007-04-06 |
| 5Zara2007-06-06 |
| 5Zara2007-02-06 |
+-----------------------------+
使用することの良い点concat
は、さまざまなデータ型の列と連結文字列表現を渡すことができることです。
SELECT concat('XXX', 10.99, 'YYY', 3, 'ZZZ', now(3)) as a;
出力
a
-----
XXX10.99YYY3ZZZ2018-09-21 15:20:25.106
単にCONCAT
キーワードを使用して文字列を連結できます。次のように使用できます
SELECT CONCAT(vend_name,'',vend_country) FROM vendors ORER BY name;
連結演算子としてパイプを使用してクエリを実行する前に、毎回パイプを連結として設定する必要があります。