溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql獲得兩個字符串中最大相同子串的示例分析

發布時間:2021-11-16 15:26:45 來源:億速云 閱讀:357 作者:柒染 欄目:MySQL數據庫

今天就跟大家聊聊有關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獲得兩個字符串中最大相同子串的示例分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女