当试图大写第一个字母时,#1305 - FUNCTION DatabaseName.LEN不存在

时间:2017-05-02 23:39:50

标签: mysql sql mysqli

我正在尝试将文本列中的第一个字母大写,并使用以下内容:

UPDATE Table
SET Column=UPPER(LEFT(Column,1))+LOWER(SUBSTRING(Column,2,LEN(Column)));

但我收到此错误

#1305 - FUNCTION Databasename.LEN does not exist

3 个答案:

答案 0 :(得分:3)

LEN不是内置MySQL函数的有效名称。

如果要使用名为LEN的函数,则需要创建该名称的函数。

MySQL确实提供了内置CHAR_LENGTH功能。但你甚至不需要使用它。

SUBSTRING函数不需要第三个参数。我认为这可以用于您的目的,只是:

 SUBSTRING(Column,2) 

https://dev.mysql.com/doc/refman/5.7/en/string-functions.html

答案 1 :(得分:2)

如上所述,您的语法不正确。一个有效的解决方案就是:

UPDATE Table SET Column = CONCAT(UCASE(LEFT(Column, 1)), SUBSTRING(Column, 2));

您使用' +'即使你用LEN修复了这个问题,也无法使用MySQL。

答案 2 :(得分:0)

这是最终的工作查询,它​​是@ spencer7593和@gview建议的混合。

UPDATE Table SET Column=Concat(UPPER(LEFT(Column,1)), LOWER(SUBSTRING(Column,2)));