MySQL连接运算符

use*_*462 38 mysql sql concatenation

我不知道MySQL的连接运算符.

我已尝试此代码进行连接:

SELECT vend_name || ' (' || vend_country || ')'
FROM Vendors
ORDER BY vend_name;
Run Code Online (Sandbox Code Playgroud)

但它没有用.我应该使用哪个运算符来连接字符串?

200*_*ess 62

||是ANSI标准字符串连接运算符,由大多数数据库(特别是MS SQL Server)支持.MySQL也支持它,但你必须SET sql_mode='PIPES_AS_CONCAT';先支持它.


cod*_*biz 45

您使用的是ORACLE类型的连接.MySQL应该是

 SELECT CONCAT(vend_name, '(', vend_country, ')')
Run Code Online (Sandbox Code Playgroud)

调用该CONCAT()函数并用逗号分隔您的值.


Aks*_*Joy 14

MySQL CONCAT函数用于连接两个字符串以形成单个字符串.试试下面的例子:

mysql> SELECT CONCAT('FIRST ', 'SECOND');
+----------------------------+
| CONCAT('FIRST ', 'SECOND') |
+----------------------------+
| FIRST SECOND               |
+----------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

要更详细地了解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             |
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)


T.S*_*.S. 5

使用的好处concat是您可以传递不同的数据类型列和连接字符串表示形式

 SELECT concat('XXX',  10.99, 'YYY', 3, 'ZZZ', now(3)) as a; 
Run Code Online (Sandbox Code Playgroud)

输出

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