DROP FUNCTION IF EXISTS shorten;
delimiter $$
CREATE FUNCTION shorten(s VARCHAR(255), n INT)
RETURNS VARCHAR(255)
BEGIN
IF ISNULL(s) THEN
RETURN '';
ELSE IF n<15 THEN
RETURN LEFT(s, n);
ELSE IF CHAR_LENGTH(s) <= n THEN
RETURN s;
ELSE
RETURN CONCAT(LEFT(s, n-10), ' ... ', RIGHT(s, 5));
END IF;
END$$
的消息,我得到的是:的MySQL函数不工作
#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 '' at line 14 >
哪里是德error..cause我是新来在MySQL制作功能。
UPDATE:
它指向一个错误与线之间的一些圆润的问号:
ELSE IF n <15 THEN RETURN LEFT(s, n) ;
ELSE IF CHAR_LENGTH(s) <= n THEN RETURN s;
顺便说一句,我用phpmyadmin
MySQL的版本是:mysqlnd 5.0。 10
您是否尝试过评估的这个较短的版本,看看你是否能缩小问题在哪里?在这个版本中似乎没有''''。 – tadman
我认为问题可能是你调用'delimiter $$',然后继续使用';'作为分隔符。 – murgatroid99
@ murgatroid99当声明一个过程,函数或触发器时,这正是完成它的方式。 – Jocelyn