如何在MYSQL查询中将名字和姓氏作为整个名称?

ale*_*lex 18 mysql sql

我希望能够做这样的事情

SELECT `first_name` + " " + `last_name` as `whole_name` FROM `users`
Run Code Online (Sandbox Code Playgroud)

所以基本上,我得到一个回whole_namefirst_namelast_name与连接在一起 (空间).

我如何在SQL中,或者更具体地说,MySQL?

Bor*_*lid 45

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

SELECT CONCAT_WS(" ", `first_name`, `last_name`) AS `whole_name` FROM `users`
Run Code Online (Sandbox Code Playgroud)

  • 如果字段为NULL(例如:中间名),则CONCAT_WS是安全的.如果任何连接字段为空,CONCAT将返回NULL (11认同)
  • +1:CONCAT也可以正常工作:`CONCAT(first_name,'',last_name)AS whole_name` (7认同)

Rit*_*dav 6

您可以使用查询来获得相同的结果:

SELECT CONCAT(FirstName , ' ' , MiddleName , ' ' , Lastname) AS Name FROM TableName;
Run Code Online (Sandbox Code Playgroud)

注意:如果所有列都有某个值,则此查询返回,如果任何列为 null 或为空,那么它将为所有列返回 null,意味着 Name 将返回“NULL”

为了避免上述情况,我们可以使用IsNull关键字来获得相同的结果。

SELECT Concat(Ifnull(FirstName,' ') ,' ', Ifnull(MiddleName,' '),' ', Ifnull(Lastname,' ')) FROM TableName;
Run Code Online (Sandbox Code Playgroud)

如果任何包含空值的“ ”(空格)将添加下一个值。