如何在不使用CONCAT()的情况下串联字段

Bil*_*ill 2 mysql sql

由于某些原因,我无法将sql表中的名字和姓氏结合在一起。

这是我尝试过的:

SELECT firstname, lastname, firstname + ' ' + lastname as fullname from students;
Run Code Online (Sandbox Code Playgroud)

出于某种原因,它在全名下的每一行的结果“ 0”中显示,但是按正常方式填充了firstname和lastname列。

请帮忙。***请注意,我不想使用CONCAT()函数

屏幕截图在这里: table

提前致谢

Gor*_*off 5

您正在尝试添加两个字符串。那没有道理。尽管有些数据库过载(考虑到SQL Server是基于Sybase的,实际上是一种)导致数据库+串联,但正确的方法是:

concat(firstname, ' ', lastname) as fullname
Run Code Online (Sandbox Code Playgroud)

或者我喜欢,因为它可以NULL干净地处理值:

concat_ws(' ', firstname, lastname) as fullname
Run Code Online (Sandbox Code Playgroud)

或在支持ISO / ANSI运算符的数据库中:

(firstname || ' ' || lastname ) as fullname
Run Code Online (Sandbox Code Playgroud)

除非您设置了模式,否则这在MySQL中不起作用PIPES_AS_CONCAT(请参阅此处)。

在MySQL中,您会得到0,因为+它被视为加法,并且两个字符串(以静默方式)基于前导数字转换为数字。由于两者均以非数字开头,因此它们都被转换为0