mysql自定义函数语法

mysql自定义函数语法,mysql,function,syntax,Mysql,Function,Syntax,嗨,这是我在这里的第一篇帖子。网络开发新手。 因此,第一个函数检查字符串是否包含“cabo verde”或“柬埔寨”或“喀麦隆”。如果是,则返回原始字符串。否则,如果字符串以CA开头,而不考虑大小写,则返回字符串“CAN”。我认为我的语法有问题,因为这是我第一次在mysql中创建自定义函数 DELIMITER $$ create function cleanstr( string1 VARCHAR(60) ) returns VARCHAR(60) DETERMINISTIC BEGI

嗨,这是我在这里的第一篇帖子。网络开发新手。
因此,第一个函数检查字符串是否包含“cabo verde”或“柬埔寨”或“喀麦隆”。如果是,则返回原始字符串。否则,如果字符串以CA开头,而不考虑大小写,则返回字符串“CAN”。我认为我的语法有问题,因为这是我第一次在mysql中创建自定义函数

DELIMITER $$
create function cleanstr( 
    string1 VARCHAR(60)
)
returns VARCHAR(60)
DETERMINISTIC
BEGIN
    IF(LOWER(string1) = 'cabo verde' OR LOWER(string1) = 'cambodia' OR LOWER(string1) = 'cameroon')
    THEN return string1;
    ELSE IF (REGEXP_LIKE(string1,'^ca','i') = 1)
    THEN return 'CAN';
END IF;
END; $$
DELIMITER ;
此函数接受3个整数值。如果前两个为空,则返回两个等于0的变量。如果第三个变量为NULL,则抛出45000错误

DELIMITER $$
create function ints( 
    num1 int, num2 int, num3 int
)
returns int 
DETERMINISTIC
BEGIN
    IF(ISNULL(num1) = 1 AND ISNULL(num2) = 1)
     THEN 
        return num1 = 0 AND num2 = 0;
    ELSE IF (ISNULL(num3) = 1)
    THEN 
        SIGNAL SQLSTATE '45000'
            SET MESSAGE_TEXT = 'Third value is NULL';
END IF;
END; $$
DELIMITER ;

我不知道我在这些函数中到底缺少了什么。希望是小东西。谢谢

“我想我有一些语法错误”请添加您认为语法错误的原因,以及“我无法找出这些函数中缺少的确切内容”的信息。所以这不是猜测行为。。。。看看您的解决方案,其中一个问题可能是
cleanstr(“中非共和国”)返回:
错误1321(2F005):函数cleanstr在没有返回的情况下结束
。但根据您给出的描述,这是显而易见的。请参阅:where is说您不应该在
ELSE
IF
之间使用空格。使用区分大小写的排序规则是不常见的,因此首先确认您是。