How to split the name string in mysql?

后端 未结 16 2190
轮回少年
轮回少年 2020-11-22 11:44

How to split the name string in mysql ?

E.g.:

name
-----
Sachin ramesh tendulkar
Rahul dravid

Split the name like firstname

16条回答
  •  不知归路
    2020-11-22 12:12

    Here is the split function I use:

    --
    -- split function
    --    s   : string to split
    --    del : delimiter
    --    i   : index requested
    --
    
    DROP FUNCTION IF EXISTS SPLIT_STRING;
    
    DELIMITER $
    
    CREATE FUNCTION 
       SPLIT_STRING ( s VARCHAR(1024) , del CHAR(1) , i INT)
       RETURNS VARCHAR(1024)
       DETERMINISTIC -- always returns same results for same input parameters
        BEGIN
    
            DECLARE n INT ;
    
            -- get max number of items
            SET n = LENGTH(s) - LENGTH(REPLACE(s, del, '')) + 1;
    
            IF i > n THEN
                RETURN NULL ;
            ELSE
                RETURN SUBSTRING_INDEX(SUBSTRING_INDEX(s, del, i) , del , -1 ) ;        
            END IF;
    
        END
    $
    
    DELIMITER ;
    
    
    SET @agg = "G1;G2;G3;G4;" ;
    
    SELECT SPLIT_STRING(@agg,';',1) ;
    SELECT SPLIT_STRING(@agg,';',2) ;
    SELECT SPLIT_STRING(@agg,';',3) ;
    SELECT SPLIT_STRING(@agg,';',4) ;
    SELECT SPLIT_STRING(@agg,';',5) ;
    SELECT SPLIT_STRING(@agg,';',6) ;
    

提交回复
热议问题