¿sentencia en MYSQL dividir cadenas y devolver un recorset por cada resultado

Iniciado por efreway, 25 Octubre 2011, 21:47 PM

0 Miembros y 1 Visitante están viendo este tema.

efreway

¿sentencia en MYSQL para dividir cadenas y devolver un recorset que contenga una fila para cada palabra?
hola, como están?
Tengo un campo en mi tabla, el cual quiero separar en varios campos pero conservando el ID al que pertenece.
Algo mas claro:
Mi tabla se llama  TMP_VARIABLES_FORMULA
y tiene la siguiente estructura:
ID       FORMULA
4    [NUMAUDEJE] [TOTAUDPLA]
5    {NUMTOTMETDISP} [NUMMETUSOINMPROP]    
6    [NUMTOTMETDISP] {NUMMETUSOINMCOM} [NUMTOTMETDISP]     [NUMMETUSOINMCOM] {NUMTOTMETDISP} {NUMMETUSOINMCOM}       
7    [NUMTOTMETDISP] [NUMMETUSOINMARR]    
8    [NUMMETARRUSADM] [NUMMETCOMUSADM] [NUMMETPROUSADM]
9    [NUMMETARRUSACAD] [NUMMETCOMUSACAD] [NUMMETCOMUSADM] [NUMMETPROUSADM]

necesito separar de la siguiente manera:
ID             VARIABLE
4                [NUMAUDEJE]
4                [TOTAUDPLA]
........
6                [NUMTOTMETDISP]
6               {NUMMETUSOINMCOM]
6               {NUMTOTMETDISP}
6               [NUMMETUSOINMCOM]
6              {NUMTOTMETDISP}
6              {NUMMETUSOINMCOM
.................
y asi con cada uno de los campos, los resultados se guardarían en otra tabla.
Si notamos la separacion se podria lograr a traves de los espacios en blanco que existen, pero ademas hay que tener en cuenta que la cantidad de palabras es diferente.
Con esta sentencia logra encontrar la cantidad de palabras que existen, a lo cual si se coloca dentro de un ciclo se le colocaria hasta cantidad-1
sentencia:


SELECT (LENGTH(IND.FOR_ID_VAR_O_IND) - LENGTH(REPLACE(IND.FOR_ID_VAR_O_IND,' ',''))+1)

FROM TMP_VARIABLES_FORMULA

*****un ejemplo claro de esto:
El siguiente ejemplo divide una cadena de texto utilizando como delimitador 'espacio' para separar las palabras y devolver un recorset que contiene una fila para cada palabra
select regexp_split_to_table('hola mundo como estas',E'\\s+') as

y el resultado es:
"hola"
"mundo"
"como"
"estas"

pero esto es en postgress pero en mi caso lo necesito para MYSQL exclusivamente, sin tener nada que ver con PHP ni nada, unicamente necesito separar dividir cadenas y devolver un  recorset que contiene una fila para cada palabra pero paramotor de base de datos MYSQL, ya sea con un procedimiento almacenado.
desde ya gracias!

wlatislav

Hola,

Pudiste obtener la solución al respecto? estoy teniendo el mismo problema.

ivancea96

Este tema es de hace 6 años -.-

La obtuviera o no, este señor no se conecta desde poco después de crear el tema, así que es muy dudoso que responda xD

Si quieres solventar tu problema y no encuentras información por el foro, es mejor que crees un tema.

(No se abren temas tan antiguos)