Ошибка объявления целочисленной переменной в хранимой функции MySQL

Я получаю сообщение об ошибке при попытке объявить новую сохраненную функцию в 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? Это, наверное, что-то невероятно простое ...!

Большое спасибо заранее.

Ответы на вопрос(2)

Ваш ответ на вопрос