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

Buscar en la BD eliminando ciertos caracteres

Estas en el tema de Buscar en la BD eliminando ciertos caracteres en el foro de Mysql en Foros del Web. Hola, buen día, he estado buscando como hacer lo siguiente: Quiero comparar cadenas con nombres de empresas que sé son iguales, de un lado vienen ...
  #1 (permalink)  
Antiguo 26/07/2006, 12:45
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 7 meses
Puntos: 0
Buscar en la BD eliminando ciertos caracteres

Hola, buen día, he estado buscando como hacer lo siguiente:

Quiero comparar cadenas con nombres de empresas que sé son iguales, de un lado vienen de un archivo de texto y quiero compararlo contra los registros que estan en la BD, el problema es que los registros no son idénticos, solo parecidos.

ABAMEX, S.A. DE C.V. (Archivo de texto)
ABAMEX S.A DE C.V (Base de datos).

Lo que quiero hacer es quitarle tanto espacios, comas, puntos, etcetera a las cadenas para que queden solo las letras juntas de manera que:

ABAMEXSADECV sea igual con ABAMEXSADECV en ambos casos.

Con el archivo de texto ya lo he hecho, pero no sé como hacerlo para que tambien en la BD me compare los datos de la misma manera.

Tengo algo como:

SELECT b.nombre FROM cliente c INNER JOIN base b ON c.idBase = b.idBase
AND REPLACE(b.nombre,"\"","") = 'ABASTECEDORAVICASADECV'
LEFT JOIN usuario u USING(idUsuario)

Pero con ese replace solo estoy quitando las comillas de los nombres, ¿como puedo hacer para quitar los demás caracteres?
  #2 (permalink)  
Antiguo 26/07/2006, 13:09
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Una primera opcion, anidar replace()

REPLACE(REPLACE(REPLACE(b.nombre,"\"",""),".",""), ",","")

Otra usar expresiones regulares. Ver la funcion REGXP

http://dev.mysql.com/doc/refman/5.0/en/regexp.html
  #3 (permalink)  
Antiguo 26/07/2006, 15:08
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 7 meses
Puntos: 0
mas o menos

Mas o menos ya habia intentado haciendolo tambien con REGEXP
pero lo habia hecho metiendoo dentro del REPLACE, algo asi como

REPLCE(nombre,REGEXP '("|,|.)'+,"")

no se si sea mas o menos asi, porque haciendolo de esa manera no me quita nada.

Saludos y gracias!
  #4 (permalink)  
Antiguo 27/07/2006, 07:21
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
Sé que con los replace anidados te funcionaría. Respecto de REGXP() no sé mucho de expresiones regulares como para ayudarte.
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 15:29.