Mysql 如何解决这个错误#1064。在创建函数时

Mysql 如何解决这个错误#1064。在创建函数时,mysql,Mysql,这是我的职责 CREATE FUNCTION CAP_FIRST (input VARCHAR(255)) RETURNS VARCHAR(255) DETERMINISTIC BEGIN DECLARE len INT; DECLARE i INT; SET len = CHAR_LENGTH(input); SET input = LOWER(input); SET i = 0; WHILE (i < len) DO

这是我的职责

CREATE FUNCTION CAP_FIRST (input VARCHAR(255))

RETURNS VARCHAR(255)

DETERMINISTIC

BEGIN
    DECLARE len INT;
    DECLARE i INT;

    SET len   = CHAR_LENGTH(input);
    SET input = LOWER(input);
    SET i = 0;

    WHILE (i < len) DO
        IF (MID(input,i,1) = ' ' OR i = 0) THEN
            IF (i < len) THEN
                SET input = CONCAT(
                    LEFT(input,i),
                    UPPER(MID(input,i + 1,1)),
                    RIGHT(input,len - i - 1)
                );
            END IF;
        END IF;
        SET i = i + 1;
    END WHILE;

    RETURN input;
END;

缺少分号:

SET i = i + 1;
END WHILE;

RETURN input;

缺少分号:

SET i = i + 1;
END WHILE;

RETURN input;

嘿,我找到了解决方案,这是我的新代码,工作正常

DELIMITER $$
CREATE  FUNCTION `db_name`.`Ucfirst`(`word` VARCHAR(255))
    RETURNS VARCHAR(255)
    BEGIN
    DECLARE len INT;
    DECLARE i INT;

    SET len   = CHAR_LENGTH(word);
    SET word = LOWER(word);
    SET i = 0;

    WHILE (i < len) DO
        IF (MID(word,i,1) = ' ' OR i = 0) THEN
            IF (i < len) THEN
                SET word = CONCAT(
                    LEFT(word,i),
                    UPPER(MID(word,i + 1,1)),
                    RIGHT(word,len - i - 1)
                );
            END IF;
        END IF;
        SET i = i + 1;
    END WHILE;

    RETURN word;
     END$$

DELIMITER ;
分隔符$$
创建函数`db_name`.`Ucfirst`(`word`VARCHAR(255))
返回VARCHAR(255)
开始
声明lenint;
声明i INT;
设置len=字符长度(字);
设置字=较低(字);
设置i=0;
而(我)是这样做的
如果(MID(word,i,1)=''或i=0),则
如果(我
嘿,我找到了解决方案,这是我的新代码,它工作正常

DELIMITER $$
CREATE  FUNCTION `db_name`.`Ucfirst`(`word` VARCHAR(255))
    RETURNS VARCHAR(255)
    BEGIN
    DECLARE len INT;
    DECLARE i INT;

    SET len   = CHAR_LENGTH(word);
    SET word = LOWER(word);
    SET i = 0;

    WHILE (i < len) DO
        IF (MID(word,i,1) = ' ' OR i = 0) THEN
            IF (i < len) THEN
                SET word = CONCAT(
                    LEFT(word,i),
                    UPPER(MID(word,i + 1,1)),
                    RIGHT(word,len - i - 1)
                );
            END IF;
        END IF;
        SET i = i + 1;
    END WHILE;

    RETURN word;
     END$$

DELIMITER ;
分隔符$$
创建函数`db_name`.`Ucfirst`(`word`VARCHAR(255))
返回VARCHAR(255)
开始
声明lenint;
声明i INT;
设置len=字符长度(字);
设置字=较低(字);
设置i=0;
而(我)是这样做的
如果(MID(word,i,1)=''或i=0),则
如果(我