Mysql m#1064-您的SQL语法有一个错误我对SQL都是最新的

Mysql m#1064-您的SQL语法有一个错误我对SQL都是最新的,mysql,function,phpmyadmin,Mysql,Function,Phpmyadmin,我正在尝试从(PhpMyAdimin)运行此创建函数代码 CREATE函数'CAP_FIRST'(输入VARCHAR(255))返回VARCHAR(255)字符集1 确定性 开始 声明lenint; 声明i INT; 声明charnumint; 声明SortedName varchar(255); 设置len=字符长度(输入); 设置输入=较低(输入); 设置i=1; 设置charnum=1; 设置SortedName=''; 而(i您可能只需要分隔符语句,您可以使用elseif,我建议将mi

我正在尝试从(PhpMyAdimin)运行此创建函数代码


CREATE函数'CAP_FIRST'(输入VARCHAR(255))返回VARCHAR(255)字符集1
确定性
开始
声明lenint;
声明i INT;
声明charnumint;
声明SortedName varchar(255);
设置len=字符长度(输入);
设置输入=较低(输入);
设置i=1;
设置charnum=1;
设置SortedName='';

而(i您可能只需要
分隔符
语句,您可以使用
elseif
,我建议将
mid()
替换为
substr()
substring()

分隔符$$
创建函数“CAP_FIRST”(输入VARCHAR(255))返回VARCHAR(255)字符集1
确定性
开始
声明lenint;
声明i INT;
声明charnumint;
声明SortedName varchar(255);
设置len=字符长度(输入);
设置输入=较低(输入);
设置i=1;
设置charnum=1;
设置SortedName='';

而(i您可能只需要
分隔符
语句,您可以使用
elseif
,我建议将
mid()
替换为
substr()
substring()

分隔符$$
创建函数“CAP_FIRST”(输入VARCHAR(255))返回VARCHAR(255)字符集1
确定性
开始
声明lenint;
声明i INT;
声明charnumint;
声明SortedName varchar(255);
设置len=字符长度(输入);
设置输入=较低(输入);
设置i=1;
设置charnum=1;
设置SortedName='';

而(i#1064-您的SQL语法有一个错误;请查看与您的MySQL服务器版本对应的手册,以获得在第1行的“DELIMITER”附近使用的正确语法,这就是我得到的错误now@MohamedTaher…发生了一些奇怪的事情。
分隔符
绝对是MySQL语法().#1064-您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,在第1行的“DELIMITER”附近使用正确的语法。这就是我得到的错误now@MohamedTaher…发生了一些奇怪的事情。
分隔符
绝对是MySQL语法()所接受的。
CREATE FUNCTION  `CAP_FIRST`(input VARCHAR(255)) RETURNS varchar(255) CHARSET latin1
    DETERMINISTIC
BEGIN
    DECLARE len INT;
    DECLARE i INT;
    DECLARE charnum INT;
    declare SortedName varchar(255);

    SET len   = CHAR_LENGTH(input);
    SET input = LOWER(input);
    SET i = 1;
    set charnum = 1;
    set SortedName = '';


    WHILE (i <= len) DO
        if charnum = 1 then
            set SortedName = concat(SortedName,upper(mid(input,i,1)));
            set charnum = charnum + 1;
        else
            if mid(input,i,1) = ' ' then
                set SortedName = concat(SortedName,' ');
                set charnum = 1;
            else
                set SortedName = concat(SortedName,mid(input,i,1));
                set charnum = charnum + 1;
            end if;

        end if;


        SET i = i + 1;
    END WHILE;

    RETURN SortedName;
END
DELIMITER $$

CREATE FUNCTION  `CAP_FIRST`(input VARCHAR(255)) RETURNS varchar(255) CHARSET latin1
    DETERMINISTIC
BEGIN
    DECLARE len INT;
    DECLARE i INT;
    DECLARE charnum INT;
    declare SortedName varchar(255);

    SET len   = CHAR_LENGTH(input);
    SET input = LOWER(input);
    SET i = 1;
    set charnum = 1;
    set SortedName = '';

    WHILE (i <= len) DO
        if charnum = 1 then
            set SortedName = concat(SortedName, upper(substr(input,i,1)));
            set charnum = charnum + 1;
        elseif mid(input,i,1) = ' ' then
            set SortedName = concat(SortedName,' ');
            set charnum = 1;
        else
            set SortedName = concat(SortedName, substr(input,i,1));
            set charnum = charnum + 1;
        end if;
        SET i = i + 1;
    END WHILE;

    RETURN SortedName;
END;
$$
DELIMITER ;