sql >> Database teknologi >  >> RDS >> Mysql

MySQL-strengseparation med kommaoperator

Jeg fik svaret

Opret først ny funktion

CREATE FUNCTION SPLIT_STR(x VARCHAR(255), delim VARCHAR(12), pos INT)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1), delim, '');

Opret derefter lagret procedure

DELIMITER ;;
CREATE PROCEDURE Split(in fullstr varchar(255))
BEGIN
    DECLARE a INT Default 0 ;
    DECLARE str VARCHAR(255);

    DROP TABLE IF EXISTS my_temp_table;
    CREATE temporary TABLE my_temp_table(ID INT AUTO_INCREMENT NOT NULL, description text, primary key(ID));

    simple_loop: LOOP
        SET a=a+1;
        SET str=SPLIT_STR(fullstr,",",a);
        IF str='' THEN
            LEAVE simple_loop;
        END IF;
        #Do Inserts into temp table here with str going into the row
        insert into my_temp_table (description) values (str);
   END LOOP simple_loop;
   select * from my_temp_table;
END

Efter det, når jeg kalder det med call Split('asas,d,sddf,dfd'); det giver mig det output, som jeg vil have.

Tak for hvert forslag.



  1. T-SQL XOR-operatør

  2. Sådan opretter du tabel med begrænsning af fremmednøgle i SQL Server - SQL Server / TSQL vejledning del 66

  3. MySQL LOAD DATA INFILE og manglende dobbelte anførselstegn

  4. php + mysql indsættelsesfejl