Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Como borrar todo luego de una palabra - Cadena de Texto

Estas en el tema de Como borrar todo luego de una palabra - Cadena de Texto en el foro de Mysql en Foros del Web. Buen día Por favor como puedo en una cadena de texto de MYSQL borrar todo lo que haya luego de una palabra, ej. LTDA. No ...
  #1 (permalink)  
Antiguo 15/09/2015, 23:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 143
Antigüedad: 20 años, 2 meses
Puntos: 2
Como borrar todo luego de una palabra - Cadena de Texto

Buen día

Por favor como puedo en una cadena de texto de MYSQL borrar todo lo que haya luego de una palabra, ej. LTDA.

No me sirve poner posiciones porque no siempre son iguales.
Gracias
  #2 (permalink)  
Antiguo 16/09/2015, 12:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como borrar todo luego de una palabra - Cadena de Texto

Podrias hacer un substring desde 1 hasta donde comienza la cadena a buscar y para saber cual es la posicion de la cadena a buscar usas un locate

Código MySQL:
Ver original
  1. SELECT SUBSTRING(columna,1,LOCATE('LTDA', columna))
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 16/09/2015, 14:21
 
Fecha de Ingreso: febrero-2004
Mensajes: 143
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Como borrar todo luego de una palabra - Cadena de Texto

Excelentísimo Sr. Muchas gracias.

Le agregué el From al final para seleccionar la tabla

Resultado

Código MySQL:
Ver original
  1. SELECT SUBSTRING(empresa,3,LOCATE(' SA', empresa)) FROM costa_rica

Saludos
  #4 (permalink)  
Antiguo 16/09/2015, 14:26
 
Fecha de Ingreso: febrero-2004
Mensajes: 143
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Como borrar todo luego de una palabra - Cadena de Texto

Por favor como podría hacer una UPDATE en lugar de SELECT?

Gracias
  #5 (permalink)  
Antiguo 16/09/2015, 14:57
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como borrar todo luego de una palabra - Cadena de Texto

un update de que???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 16/09/2015, 15:04
 
Fecha de Ingreso: febrero-2004
Mensajes: 143
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Como borrar todo luego de una palabra - Cadena de Texto

Estoy viendo y creo que no es precisamente lo que buscaba porque se borra lo que hay al comienzo de la cadena de texto y no lo que hay luego de la palabra ej. LTDA

El tema es que tengo varios miles de lineas en una base de datos MYSQL y necesito normalizar los nombres de las empresas y quitar todo lo que pueda haber luego de Ej. LTDA o SA o SRL, y por lo tanto necesito hacer un UPDATE de todas las cadenas de texto.

Espero que haya alguna forma en MYSQL para que pueda resolverlo

Saludos
  #7 (permalink)  
Antiguo 16/09/2015, 16:43
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como borrar todo luego de una palabra - Cadena de Texto

pues nada mas cambia las posiciones de las cadenas:

Código MySQL:
Ver original
  1. SELECT SUBSTRING(empresa,LOCATE(' SA', empresa), LENGTH (empresa)) as empresa FROM costa_rica

Y listo :) ahora para el update

Código MySQL:
Ver original
  1. update costa_rica
  2. set empresa=t1.empresa
  3. (
  4. SELECT SUBSTRING(empresa,LOCATE(' SA', empresa), LENGTH (empresa)) as emprsa,id FROM costa_rica
  5. ) as t1 where costa_rica.id=t1.id
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 17/09/2015, 15:08
 
Fecha de Ingreso: febrero-2004
Mensajes: 143
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Como borrar todo luego de una palabra - Cadena de Texto

Disculpa LIbras que no pude responder hasta ahora. Estoy regresando de mi trabajo!

Tengo una nueva consulta para ver si pueden ayudarme con mi normalización.
Como puedo hacer un UPDATE borrando de una cadena de texto todo lo que se encuentra entre paréntesis, ej. EMPRESA (ESTA EMPRESA) MÍA LTDA.

Así como aparece en el ejemplo, quisiera que se borre ESTA EMPRESA incluyendo los paréntesis, pero mantener EMPRESA MÏA.
Ya intenté hacerlo con susbrting_index, pero se borra lo que aparece luego de los paréntesis también ej. (ESTA EMPRESA) MÍA LTDA.

Muchas gracias por tu ayuda.
Espero que esto le pueda servir a muchas otras personas
  #9 (permalink)  
Antiguo 17/09/2015, 15:29
 
Fecha de Ingreso: febrero-2004
Mensajes: 143
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: Como borrar todo luego de una palabra - Cadena de Texto

Para quien le sea útil lo conseguí hacer yo,

Código MySQL:
Ver original
  1. LEFT(referencia, INSTR(referencia, '(') - 1),
  2. RIGHT(referencia, LENGTH(referencia) - INSTR(referencia, ')'))
  3. )
  4. FROM costa_rica

y el UPDATE

Código MySQL:
Ver original
  1. UPDATE costa_rica SET referencia = CONCAT(
  2. LEFT(referencia, INSTR(referencia, '(') - 1),
  3. RIGHT(referencia, LENGTH(referencia) - INSTR(referencia, ')'))
  4. )
  5. WHERE referencia LIKE '%(%)%';

Saludos

Última edición por Lordseed; 17/09/2015 a las 15:36

Etiquetas: cadena, palabra, sql, todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:38.