问题描述
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘DELIMITER’ at line 1
DROP FUNCTION
IF
EXISTS `ExtractNumber`;
DELIMITER $$
CREATE FUNCTION`ExtractNumber`(in_string VARCHAR (50))
RETURNS INT
NO SQL
BEGIN
DECLARE
ctrNumber VARCHAR (50);
DECLARE
finNumber VARCHAR (50) DEFAULT '';
DECLARE
sChar VARCHAR (1);
DECLARE
inti INTEGER DEFAULT 1;
IF
LENGTH(in_string) > 0 THEN
WHILE
(
inti <= length(in_string))DO
SET sChar = substring(in_string, inti,1);
SET ctrNumber = FIND_IN_SET(sChar,'0,1,2,3,4,5,6,7,8,9');
IF
ctrNumber > 0 THEN
SET finNumber = CONCAT(finNumber, sChar);
END IF;
SET inti = inti + 1;
END WHILE;
RETURN CAST(finNumber AS UNSIGNED);
ELSE RETURN 0;
END IF;
END $$DELIMITER;
原因分析:
这是一个取数函数,但是我在写的时候,总是报错。开始以为是函数名的斜杠错了,后来发现是自己的格式错了
END $$DELIMITER
不能放一行, DELIMITER$$
和 END$$
呼应,另起一行 DELIMITER
小白路上,加油呀!