我正在尝试将文本列中的第一个字母大写,并使用以下内容:
UPDATE Table
SET Column=UPPER(LEFT(Column,1))+LOWER(SUBSTRING(Column,2,LEN(Column)));
但我收到此错误
#1305 - FUNCTION Databasename.LEN does not exist
答案 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)));