最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL獲取二維數(shù)組字符串的最后一個值的實現(xiàn)代碼

 更新時間:2024年04月23日 11:12:08   作者:天狼1222  
這篇文章主要介紹了MySQL獲取二維數(shù)組字符串的最后一個值的實現(xiàn),文中有詳細的代碼示例供大家參考,對大家的學習或工作有一定的幫助,需要的朋友可以參考下

要分離字符串:[["1","1007","1007012"],["5","5005"],["6","6002","6002005"],["7","7003"],["8","8001","8001005"]],獲取里面各數(shù)組里面的最后一個值,即1007012,5005,6002005,7003和8001005

1,內(nèi)容替換

先把內(nèi)容替換了,把雙引號和替換為空的,再把中間中括號替換為指定字符

替換后的:

 SELECT REPLACE ( REPLACE (  REPLACE (REPLACE ( s.gdbq, '],[', '@' ),
'[', '' ), ']', '' ), '"', '' ) replace_gdbq FROM
(
  SELECT '[["1","1007","1007012"],["5","5005"],
["6","6002","6002005"],["7","7003"],["8","8001","8001005"]]' AS gdbq
  ) AS s

2,寫函數(shù)處理

利用LOCATE找到位置,再用SUBSTRING分離字符串,再用SUBSTRING_INDEX獲取到數(shù)組的最后一個值。

分離函數(shù):

DROP FUNCTION IF EXISTS func_split_arr_last_index;
DELIMITER //
CREATE FUNCTION func_split_arr_last_index(inputString VARCHAR(1024), delimiterChar VARCHAR(10))
RETURNS VARCHAR(1024) 
BEGIN
    -- 分割后的子字符串
    DECLARE splitStr VARCHAR(255);
    -- 再分割后的子字符串數(shù)組最后一個值
    DECLARE lastIndexStr VARCHAR(255);
    -- 分割后的結(jié)果
    DECLARE outputResult VARCHAR(255) DEFAULT '';
    -- 分割后的子字符串的位置
    DECLARE currentPos INT DEFAULT 1;
    -- 分割字符的位置
    DECLARE delimiterPos INT; 
    -- 分割字符的大小
    DECLARE delimiterLength INT; 
    SET delimiterLength = LENGTH(delimiterChar);
    -- 循環(huán)查找分割字符
    WHILE currentPos <= LENGTH(inputString) DO
        -- 查找分割字符的位置
        SET delimiterPos = LOCATE(delimiterChar, inputString, currentPos);
        -- 如果找到分割字符,則截取子字符串
        IF delimiterPos > 0 THEN
            SET splitStr = SUBSTRING(inputString, currentPos, delimiterPos - currentPos); 
            -- 找出最后一個值
	    SET lastIndexStr = SUBSTRING_INDEX(splitStr, ',', -1); 
            -- 將子字符串最后一個值添加到結(jié)果中
            SET outputResult = CONCAT(outputResult, lastIndexStr, ',');
            -- 更新索引
            SET currentPos = delimiterPos + delimiterLength;
        ELSE
            -- 如果沒有找到分割字符,則將剩余的字符串添加到結(jié)果中
            SET splitStr = SUBSTRING(inputString, currentPos);
            -- 找出最后一個值
	    SET lastIndexStr = SUBSTRING_INDEX(splitStr, ',', -1); 
            SET outputResult = CONCAT(outputResult, lastIndexStr);
            -- 退出循環(huán)
            SET currentPos = LENGTH(inputString) + 1;
        END IF;
    END WHILE;
    
    -- 返回分割后的結(jié)果
   RETURN outputResult;
END //
 
 
DELIMITER ; 

使用:

SELECT func_split_arr_last_index(replace_gdbq, '@') FROM (
 SELECT REPLACE ( REPLACE (  REPLACE (REPLACE ( s.gdbq, '],
[', '@' ),'[', '' ), ']', '' ), '"', '' ) replace_gdbq FROM
(
  SELECT '[["1","1007","1007012"],["5","5005"],
["6","6002","6002005"],["7","7003"],["8","8001","8001005"]]' AS gdbq
  ) AS s
 ) AS t;

這樣分離數(shù)據(jù)的就目標達成了,就可以進行下一步操作了。

總結(jié)

分離字符串,必須得用到LOCATE(找到位置)和SUBSTRING(分離字符串),有考慮直接用replace進行替換,但是這個可能會出現(xiàn)誤差,導致問題,就不推薦使用。 對于一位數(shù)組的位置,如果是固定長度的就還好指定位置,不然只有第一個和最后一個位置是確定的。

以上就是MySQL獲取二維數(shù)組字符串的最后一個值的實現(xiàn)代碼的詳細內(nèi)容,更多關于MySQL獲取字符串最后一個值的資料請關注腳本之家其它相關文章!

相關文章

最新評論

新野县| 文昌市| 南京市| 康乐县| 山东| 福清市| 山东省| 永吉县| 比如县| 雅安市| 嘉祥县| 武汉市| 奉节县| 牟定县| 胶南市| 溆浦县| 田阳县| 天气| 日照市| 堆龙德庆县| 大渡口区| 洛浦县| 平利县| 林口县| 凉山| 通许县| 乌兰县| 泾川县| 教育| 蓝山县| 田阳县| 安福县| 保靖县| 南昌县| 马尔康县| 改则县| 扶绥县| 黎川县| 武穴市| 崇礼县| 清徐县|