49

MySQLの連結演算子がわかりません。

私は連結のためにこのコードを試しました:

SELECT vend_name || ' (' || vend_country || ')'
FROM Vendors
ORDER BY vend_name;

しかし、それはうまくいきませんでした。文字列を連結するには、どの演算子を使用する必要がありますか?

4

6 に答える 6

76

||はANSI標準の文字列連結演算子であり、ほとんどのデータベース(特に、MS SQL Serverではサポートされていません)でサポートされています。MySQLもそれをサポートしていますが、SET sql_mode='PIPES_AS_CONCAT';最初SET sql_mode='ANSI';にサポートする必要があります。

于 2014-07-16T09:33:59.140 に答える
54

ORACLEタイプの連結を使用していました。MySQLは

 SELECT CONCAT(vend_name, '(', vend_country, ')')

関数を呼び出し、CONCAT()値をコンマで区切ります。

于 2013-03-26T07:01:04.847 に答える
15

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             |
+-----------------------------+
于 2013-03-26T07:01:01.000 に答える
5

使用することの良い点concatは、さまざまなデータ型の列と連結文字列表現を渡すことができることです。

 SELECT concat('XXX',  10.99, 'YYY', 3, 'ZZZ', now(3)) as a; 

出力

a
-----
XXX10.99Y​​YY3ZZZ2018-09-21 15:20:25.106

于 2018-09-21T19:21:19.127 に答える
2

単にCONCATキーワードを使用して文字列を連結できます。次のように使用できます

SELECT CONCAT(vend_name,'',vend_country) FROM vendors ORER BY name;
于 2018-07-31T10:52:48.327 に答える
-1

連結演算子としてパイプを使用してクエリを実行する前に、毎回パイプを連結として設定する必要があります。

于 2018-01-14T19:29:59.737 に答える