Mysql 给出错误答案的疑问

Mysql 给出错误答案的疑问,mysql,Mysql,我使用的是mysql,我想要名字大写的第一个字母和小写的剩余字符我使用的查询是 select UPPER(LEFT(FirstName,1))+LOWER(SUBSTRING(FirstName,2,LENGTH(FirstName))) FirstName from colliers; 这给出了答案0,但它在SQL server中工作得非常好。您必须使用CONCAT(),而不是+ SELECT CONCAT(UPPER(LEFT(FirstName,1)),LOWER(SUBSTRING(

我使用的是mysql,我想要名字大写的第一个字母和小写的剩余字符我使用的查询是

select  UPPER(LEFT(FirstName,1))+LOWER(SUBSTRING(FirstName,2,LENGTH(FirstName))) FirstName from colliers;

这给出了答案0,但它在SQL server中工作得非常好。

您必须使用
CONCAT()
,而不是+

SELECT CONCAT(UPPER(LEFT(FirstName,1)),LOWER(SUBSTRING(FirstName,2,LENGTH(FirstName)))) FirstName from colliers
你必须使用。“加号”连接在MySQL中不起作用。你可能会得到这样的结果:

select CONCAT(UPPER(LEFT(FirstName,1)), LOWER(SUBSTRING(FirstName,2,LENGTH(FirstName)))) FirstName from colliers;

顺便说一下,在函数调用中不需要
LENGTH(FirstName)
。当省略第三个参数时,
SUBSTRING()
假定您需要字符串的其余部分。

这是解决问题的另一种方法

我会使用concat()、ucase()/upper()、lcase()/lower()、mid()/substring()

SELECT CONCAT (
        upper(mid(Firstname, 1, 1))
        ,lower(mid(Firstname, 2))
        )
FROM colliers;