溫馨提示×

溫馨提示×

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

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

MySQL怎么用分隔符分隔字符串

發(fā)布時間:2022-08-29 16:24:03 來源:億速云 閱讀:155 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“MySQL怎么用分隔符分隔字符串”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL怎么用分隔符分隔字符串”吧!

    MySQL用分隔符分隔字符串

    使用

    可以使用如下函數(shù)

    SUBSTRING_INDEX( i.final_car_type, ' ', 1 )
    • i.final_car_type 即 需要分隔的字符串

    • ’ ’ 即 用空格分隔該字符串

    • 1 即:取出該空格之前的所有字符

    也就是說,如果count是正數(shù),那么就是從左往右數(shù),第N個分隔符的左邊的全部內(nèi)容。相反,如果是負數(shù),那么就是從右邊開始數(shù),第N個分隔符右邊的所有內(nèi)容

    效果

    如果count 是1

    • 表里數(shù)據(jù):東風風神全新AX7馬赫版 DF 21(天窗版)

    • 拆分后:東風風神全新AX7馬赫版

    如果count 是-1

    • 表里數(shù)據(jù):東風風神全新AX7馬赫版 DF 21(天窗版)

    • 拆分后:21(天窗版)

    MySQL存儲過程 根據(jù)分隔符拆分字符串

    DELIMITER $$
     
    CREATE DEFINER=`root`@`%` PROCEDURE `proc_split_Id`(in selectIds blob(65535),
    in splitChar varchar(2))
    BEGIN
    set @i=0; 
    CREATE TEMPORARY TABLE if not exists Id_Result_s(Id long NOT NULL);
    truncate table Id_Result_s;
    SET @cnt = 1+(LENGTH(selectIds) - LENGTH(REPLACE(selectIds,splitChar,''))); 
    set @i=1; 
    	start transaction;
        WHILE @i <=@cnt DO          
            SET @result = REPLACE(SUBSTRING(SUBSTRING_INDEX(selectIds, splitChar, @i),
           LENGTH(SUBSTRING_INDEX(selectIds, splitChar, @i -1)) + 1),
           splitChar, '');  
           INSERT INTO Id_Result_s(Id) VALUES (@result );
    		SET @i = @i + 1;   
        END WHILE;  
    	commit;    
    END

    selectIds為需要拆分的字符串,splitChar為分隔符. 拆分的結(jié)果保存在臨時表Id_Result_s中.

    while中有insert語句,循環(huán)插入.在while前后加上start transaction和commit可以提高效率.

    到此,相信大家對“MySQL怎么用分隔符分隔字符串”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

    向AI問一下細節(jié)

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

    AI