208

我正在使用 MySQL 和 MySQL Workbench 5.2 CE。当我尝试连接 2 列时last_namefirst_name它不起作用:

select first_name + last_name as "Name" from test.student
4

5 回答 5

353

MySQL 不同于大多数 DBMS 对连接的使用+||连接。它使用以下CONCAT功能:

SELECT CONCAT(first_name, ' ', last_name) AS Name FROM test.student

还有CONCAT_WS(Concatenate With Separator) 函数,它是 的一种特殊形式CONCAT()

SELECT CONCAT_WS(' ', first_name, last_name) from test.student

也就是说,如果您想将||其视为字符串连接运算符(与 相同CONCAT())而不是ORMySQL 中的同义词,您可以设置PIPES_AS_CONCATSQL 模式。

于 2011-05-12T09:31:37.320 回答
33

尝试:

select concat(first_name,last_name) as "Name" from test.student

或更好:

select concat(first_name," ",last_name) as "Name" from test.student
于 2011-05-12T09:31:39.703 回答
11

使用concat()函数而不是+这样:

select concat(firstname, lastname) as "Name" from test.student
于 2011-05-12T09:31:48.427 回答
3

这不是在 MYSQL 中连接的方式。使用 CONCAT 函数看看这里:http ://dev.mysql.com/doc/refman/4.1/en/string-functions.html#function_concat

于 2011-05-12T09:33:11.620 回答
2

除了concat你还可以使用concat_ws(用分隔符连接):

SELECT CONCAT_WS(' ', first_name, last_name) from test.student

此函数具有跳过null值的额外好处。

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_concat-ws

于 2021-08-27T08:17:07.507 回答