1

我有一个成员表,其中名字、中间名和姓氏有单独的列:

id,firstname,middlename,lastname,role,photo

如何通过一次查询检索完整名称?我尝试使用AS关键字,但我不知道如何将这 3 列合并为一列:

SELECT id,lastname AS name FROM members ORDER BY role

例如,我想检索全名(即名字、中间名和姓氏)name,当然每个值之间有一个空格。

4

2 回答 2

3

使用CONCAT_WS( )

SELECT ID, CONCAT_WS(' ', firstname, middlename, lastname) AS Name
FROM   members 
ORDER  BY role

从文档,

CONCAT_WS() 代表 Concatenate With Separator,是 CONCAT() 的一种特殊形式。第一个参数是其余参数的分隔符。在要连接的字符串之间添加分隔符。分隔符可以是字符串,其余参数也可以。如果分隔符为 NULL,则结果为 NULL。

于 2013-08-14T15:44:13.897 回答
2

您可以使用concatconcat_ws如@491243 在他的回答中所示。以下是如何使用concat函数。

select id, concat(firstname, ' ', middlename, ' ', lastname) as name, role, photo 
from members 
order by role;
于 2013-08-14T15:44:27.737 回答