Logo
You
Code

SPLIT en MySql

Autor YouCode - http://www.youcode.com.ar/mysql/split-en-mysql-282

Hacer un SPLIT en un campo donde los datos estan separados por coma (,) o algun otro delimitador, simple funcion que nos ayudara mucho.

Pueden crear una funcion o un store procedure en su base de datos, no he puesto las declaraciones de create (tanto para funciones o store procedure) porque lo dejo a su criterio de que quieran crear, el hecho es que yo uso en mi base este procedimiento y funciona bien.

Donde:

p_tags sería el parametro de entrada con los datos separados por coma en este caso.
cant es donde contamos "cuantas palabras" hay
cont es para el while
tagtxt va guardadno cada "palabra" y luego hacemos el select siempre que no sea cero su lenght, en este caso hay un select, pero el hecho es que pueden hacer lo que quieran, en mi caso hay un insert por cada vuelta que hace el while.
 
declare cant integer default 0;
declare cont integer default 1;
declare tagtxt VARCHAR(50);

set cant=LENGTH(p_tags)-LENGTH(REPLACE(p_tags,',',''))+2;

while cont < cant do

set tagtxt=(REPLACE(SUBSTRING(SUBSTRING_INDEX(p_tags,',', cont),
            LENGTH(SUBSTRING_INDEX(p_tags,',', cont - 1)) + 1), ',', ''));
    		
            #Hago el select para ir obteniendo cada dato
            if(LENGTH(tagtxt)>0) then
                select tagstxt;
                set tagtxt='';
            end if;            
            
set cont=cont+1;            

end while; 
Es un simple WHILE recorriendo la variable p_tags la cual tiene datos como : "hola,adios,chau" y el resultado de esto seria:
hola
adios
chau

Facil!
http://www.youcode.com.ar/mysql/split-en-mysql-282