Mysql获得两个字符串中最大相同子串的示例分析
发布时间:2021-12-18 14:27:36 所属栏目:MySql教程 来源:互联网
导读:今天就跟大家聊聊有关Mysql获得两个字符串中最大相同子串的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 length:返回字符串所占的字节数,是计算字段的长度。utf8编码下,一个汉字是算
今天就跟大家聊聊有关Mysql获得两个字符串中最大相同子串的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 length:返回字符串所占的字节数,是计算字段的长度。utf8编码下,一个汉字是算三个字符,一个数字或字母算一个字符。其他编码下,一个汉字算两个字符, 一个数字或字母算一个字符。 char_length:返回字符串所占的字符数,不管汉字还是数字或者是字母都算是一个字符 DELIMITER $$ CREATE DEFINER=`testuser`@`%` PROCEDURE `getMaxSubStrP`(`inParam1` varchar(100),`inParam2` varchar(100), out `resultStr` VARCHAR(100), out `resultLen` int) BEGIN DECLARE longStr VARCHAR(255); DECLARE shortStr VARCHAR(255); DECLARE tempStr VARCHAR(255); DECLARE tempResult VARCHAR(255) DEFAULT ""; DECLARE strLength2 INT DEFAULT 0; DECLARE strLength3 INT DEFAULT 0; DECLARE minStrLength INT DEFAULT 0; DECLARE startIndex INT DEFAULT 0; DECLARE endIndex INT DEFAULT 1; DECLARE cmpInt INT DEFAULT 0; SELECT CHAR_LENGTH(inParam1), CHAR_LENGTH(inParam2) INTO strLength2,strLength3 FROM DUAL; SET minStrLength = strLength2; IF minStrLength>strLength3 THEN SET minStrLength=strLength3; SET longStr = inParam1; SET shortStr = inParam2; ELSE SET longStr=inParam2; SET shortStr=inParam1; end if; -- select minStrLength,longStr,shortStr; WHILE startIndex < minStrLength DO SET endIndex = startIndex + 1; WHILE endIndex<=minStrLength DO SELECT SUBSTR(shortStr,startIndex+1,endIndex-startIndex) into tempStr from DUAL; SELECT INSTR(longStr, tempStr ) into cmpInt FROM dual; -- select startIndex,endIndex,tempStr,tempResult,cmpInt; IF (cmpInt>0) AND (CHAR_LENGTH(tempResult)<char_length(tempstr)) then THEN SET tempResult=tempStr; END if; SET endIndex = endIndex + 1; end WHILE; -- endIndex while set startIndex = startIndex + 1; end while; -- startIndex WHILE set resultStr=tempResult; SELECT CHAR_LENGTH(resultStr) INTO resultLen FROM DUAL; -- set resultLen= CHAR_LENGTH(resultStr); -- select @resultLen,@resultStr; END$$ DELIMITER ; 看完上述内容,你们对Mysql获得两个字符串中最大相同子串的示例分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。 (编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读