栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MySQL Levenshtein

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL Levenshtein

delimiter
创建函数之前不要忘记更改。

DELIMITER $$CREATE FUNCTION LEVENSHTEIN( s1 CHAr(255), s2 CHAr(255)) RETURNS int(3) DETERMINISTICBEGIN    DECLARE s1_len, s2_len, i, j, c, c_temp, cost INT;    DECLARE s1_char CHAr(255);    DECLARE cv0, cv1 CHAr(255);    SET s1_len = LENGTH(s1);    SET s2_len = LENGTH(s2);    SET cv1 = 0x00;    SET j = 1;    SET i = 1;    SET c = 0;    IF s1 = s2 THEN        RETURN 0;    ELSE IF s1_len = 0 THEN        RETURN s2_len;    ELSE IF s2_len = 0 THEN        RETURN s1_len;    ELSE        WHILE j <= s2_len DOSET 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;      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$$DELIMITER ;


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416697.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号