0

I need to Write a Stored Procedure IN MYSQL to convert given CSV string to rows.

E.g. Input String: 'str1,str2,str3,str4’

Output String: String
          ________
        str1
        str2
        str3
        str4

I had mssql snippet that im trying to convert to simple mysql procedure:

CREATE PROCEDURE CSVtoROWS(IN S VARCHAR(100))
BEGIN
Declare  ISDefault varchar(20) DEFAULT '';
Declare str varchar(100);

set str= LTRIM(RTRIM(S));

IF(str = '')
   begin 
    SET ISDefault = 'string is empty';
    return(1);
end;
ELSE
    begin 
        SELECT Split.a.value('.', 'VARCHAR(100)') AS Str
        FROM  (SELECT CAST ('<M>' + REPLACE(str, ',', '</M><M>') + '</M>' AS XML) AS Str ) AS A 
        CROSS APPLY Str.nodes ('/M') AS Split(a);
    end;
END;
Arul Dinesh
  • 550
  • 4
  • 15
  • In phpmyadmin it shows error:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 – user3264632 Feb 03 '14 at 11:02
  • The output needs to be cs values in one column distributed in each row..name of column is strings – user3264632 Feb 03 '14 at 11:06
  • Perhaps you can take some ideas from [here](http://stackoverflow.com/a/19756848). – wchiquito Feb 03 '14 at 18:57

0 Answers0