Php 使用哪一个,concat,concat_ws?在mysql中

Php 使用哪一个,concat,concat_ws?在mysql中,php,mysql,Php,Mysql,在PHP中,我需要更改这些数据 FirstName | MiddleName | LastName --------------------------------- Robert | Thomas | Smith “史密斯,罗伯特·托马斯” 我不确定是否需要使用join、concat或concat\ws 我知道如果我使用 concat_ws(', ',LastName,FirstName,MiddleName) 然后我得到“史密斯,罗伯特,托马斯”,但我需要“史密斯,罗伯特,

在PHP中,我需要更改这些数据

FirstName | MiddleName | LastName
---------------------------------
Robert    | Thomas     | Smith
“史密斯,罗伯特·托马斯”

我不确定是否需要使用
join
concat
concat\ws

我知道如果我使用

concat_ws(', ',LastName,FirstName,MiddleName)
然后我得到“史密斯,罗伯特,托马斯”,但我需要“史密斯,罗伯特,托马斯”

有什么建议吗?

那就用

CONCAT(LastName, ', ', FirstnName, ' ', MiddleName)

CONCAT_WS仅用于连接一个分隔符,而CONCAT会以任何方式将字符串附加在一起。

我意识到这是一个necro,但值得注意的是:

两者在很大程度上是等价的

但是,最值得注意的区别是,在任何输入为NULL的情况下,可能不会返回预期的结果。在这些情况下,将返回NULL,而将跳过NULL值,并仍然返回一个字符串,其中包含剩余输入的结果。这意味着在大多数情况下,您可能希望使用

除一个或多个输入为空外,以下各项是等效的:

// Result: LastName, FirstName, MiddleName
CONCAT( LastName, ', ', FirstName, ', ', MiddleName )

// Result: LastName, FirstName, MiddleName
CONCAT_WS( ', ', LastName, FirstName, MiddleName )
如果要与不同的“分隔符”一起使用,只需将第一个输入设置为空字符串:

// Result: LastName, FirstName (MiddleName)
CONCAT_WS( '', LastName, ', ', FirstName, ' (', MiddleName, ')' )

这样编写SQL以获得所需的结果:

选择CONCAT_WS(',',author_lname,CONCAT(author_fname,,,author_lastname))作为书籍中的信息;
它将返回输出:


史密斯,詹姆斯·布莱克

谢谢你,在工作和家庭作业之间,我想我的大脑已经离开了这一天!!。。这么简单的答案我不知道为什么我没有想到。lol..@TommyCombs记住标记答案,它们是排名工作的基础,标记答案和贡献给分数,这就是人们继续返回S-O的动机