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