我越來越想宣佈在MySQL中一個新的存儲功能(服務器版本:5.5.13)當出現錯誤錯誤聲明整型變量存儲功能
基本上,我有一個大表將取決於其分類串他們如何開始。我需要的功能(根據用戶輸入)的字符串,然後告訴你該字符串的分類通過分類搜索數據庫。這是一個有點像LIKE查詢,除了逆,因爲它是一個包含完整的字符串用戶輸入和數據庫包含被搜索的字符串。希望是有道理的!
背後做工精細,我已經寫了/在PHP開發這和它精美的作品,試圖轉換成一個存儲功能,我從MySQL得到一個錯誤,但是這時候的概念和邏輯。該函數的代碼是:
delimiter $
DROP FUNCTION IF EXISTS get_string_class$
CREATE FUNCTION get_string_class(mystring VARCHAR(15))
RETURNS VARCHAR(15)
READS SQL DATA
BEGIN
DECLARE i INT;
SET i = 2;
DECLARE mystringlength INT;
SET mystringlength = LENGTH(mystring);
DECLARE segment VARCHAR(15);
DECLARE String_Class VARCHAR(15);
SET String_Class = NULL;
WHILE i <= mystringlength DO
SET segment = LEFT(mystring, i);
SET String_Class = (SELECT String_Class FROM string_class_list WHERE String_Begins = segment);
IF SELECT FOUND_ROWS() = 1 THEN
RETURN String_Class
END IF;
i = i + 1;
END WHILE;
RETURN String_Class;
END$
delimiter ;
我得到這個錯誤:
#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
'DECLARE mystringlength INT; SET mystringlength = LENGTH(mystring);
DECLARE segm' at line 10
我已經做了很多的玩弄在試圖制定出我要去哪裏錯了。我甚至已經剝離出來的循環共進行測試,但仍然得到同樣的錯誤。有誰知道我做錯了什麼地方聲明INT變量?這可能是一些令人難以置信的基本...!
非常感謝。
太棒了,非常感謝指針:) – 2012-08-01 10:53:48