mysql split函数代码二例

发布时间:2020-12-06编辑:脚本学堂
分享二个mysql中实现的split函数代码,学习下mysql split函数的实现方法,有需要的朋友参考下。

例1,mysql split函数代码
 

复制代码 代码示例:

DELIMITER $$

DROP FUNCTION IF EXISTS `f_split_varchar`$$

CREATE
    FUNCTION `f_split_varchar`(f_string VARCHAR(1000),f_delimiter VARCHAR(5)) RETURNS  INT(11)
   
    BEGIN
    DECLARE returnInt INT(11); 
      IF LENGTH(f_delimiter) = 2  THEN 
         RETURN 1+(LENGTH(f_string) - LENGTH(REPLACE(f_string,f_delimiter,'')))/2; 
      ELSE     
         RETURN 1+(LENGTH(f_string) - LENGTH(REPLACE(f_string,f_delimiter,''))); 
      END IF; 

    END$$

DELIMITER ;

例2,实现一个mysql数据库函数,模仿Split方法

把一个字符串按某个字符拆分,写一个数据库函数,就不用在代码中拆分完了,循环的调用数据库,一步完成,大大增加了程序的效率。
代码:
 

复制代码 代码示例:
SELECT ID FROM DBO.FUN_SPLIT('1,2,3,4,5,6',',')
CREATE FUNCTION [dbo].[FUN_SPLIT]( 
    @STR VARCHAR(8000), 
    @FLAG VARCHAR(8000) 

RETURNS @RE TABLE(ID VARCHAR(8000)) 
AS 
BEGIN    
    WHILE CHARINDEX(@FLAG,@STR)>0 
    BEGIN 
        INSERT INTO @RE 
        SELECT SUBSTRING(@STR,0,CHARINDEX(@FLAG,@STR)) 
        SELECT @STR = SUBSTRING(@STR,CHARINDEX(@FLAG,@STR)+1,LEN(@STR)) 
    END 
    INSERT INTO @RE 
    SELECT @STR 
    RETURN; 
END