Salve a tutti. E' un po' che sto cercando ovunque su internet, ma non riesco a trovare la risposta esatte. Allora: uso phpmyadmin, e ho recuperato su internet quest'interessante funzione mysql che utilizza l'algoritmo di levenshtein per calcolare la distanza fra due stringhe.

codice:
CREATE FUNCTION levenshtein (s1 VARCHAR(255), s2 VARCHAR(255))
  RETURNS INT
    DETERMINISTIC
      BEGIN
        DECLARE s1_len INT; 
        DECLARE s2_len INT;
        DECLARE i INT;
        DECLARE j INT;
        DECLARE c INT; 
        DECLARE c_temp INT; 
        DECLARE cost INT;
        DECLARE s1_char CHAR;
        DECLARE cv0, cv1 VARBINARY(256);
        SET s1_len = CHAR_LENGTH(s1), s2_len = CHAR_LENGTH(s2), cv1 = 0x00, j = 1, i = 1, c = 0;
        IF s1 = s2 THEN
          RETURN 0;
        ELSEIF s1_len = 0 THEN
          RETURN s2_len;
        ELSEIF s2_len = 0 THEN
          RETURN s1_len;
        ELSE
          WHILE j <= s2_len DO
            SET cv1 = CONCAT(cv1, UNHEX(HEX(j))), j = j + 1;
          END WHILE;
          WHILE i <= s1_len DO
            SET s1_char = SUBSTRING(s1, i, 1), c = i, cv0 = UNHEX(HEX(i)), j = 1;
            WHILE j <= s2_len DO
                SET c = c + 1;
                IF s1_char = SUBSTRING(s2, j, 1) THEN SET cost = 0; ELSE SET cost = 1; END IF;
                SET c_temp = CONV(HEX(SUBSTRING(cv1, j, 1)), 16, 10) + cost;
                IF c > c_temp THEN SET c = c_temp; END IF;
                SET c_temp = CONV(HEX(SUBSTRING(cv1, j+1, 1)), 16, 10) + 1;
                IF c > c_temp THEN SET c = c_temp; END IF;
                SET cv0 = CONCAT(cv0, UNHEX(HEX(c))), j = j + 1;
            END WHILE;
            SET cv1 = cv0, i = i + 1;
          END WHILE;
        END IF;
        RETURN c;
      END
ma se provo a crearla su mio DB ricevo sempre lo stesso errore:

query SQL:

CREATE FUNCTION levenshtein(
s1 VARCHAR( 255 ) ,
s2 VARCHAR( 255 )
) RETURNS INT DETERMINISTIC DECLARE s1_len INT;

Messaggio di MySQL: Documentazione
#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 s1_len INT' at line 5

Ho come l'idea che abbia dei problemi a riconoscere degli spazi o qualcosa di simle, forse non prende bene gli "a capo"...e questa procedura non viene accettata ne dal phpmyadmin che gira in locale, da da quello in remoto. Come posso farE?
Grazie