elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  ¿sentencia en MYSQL dividir cadenas y devolver un recorset por cada resultado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿sentencia en MYSQL dividir cadenas y devolver un recorset por cada resultado  (Leído 7,486 veces)
efreway

Desconectado Desconectado

Mensajes: 2


Ver Perfil
¿sentencia en MYSQL dividir cadenas y devolver un recorset por cada resultado
« en: 25 Octubre 2011, 21:47 pm »

¿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!


En línea

wlatislav

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: ¿sentencia en MYSQL dividir cadenas y devolver un recorset por cada resultado
« Respuesta #1 en: 17 Julio 2017, 22:39 pm »

Hola,

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


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: ¿sentencia en MYSQL dividir cadenas y devolver un recorset por cada resultado
« Respuesta #2 en: 24 Julio 2017, 03:01 am »

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)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines