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

Seleccionar campos que contengan alguna palabra o Conjunto de Palabras

Estas en el tema de Seleccionar campos que contengan alguna palabra o Conjunto de Palabras en el foro de Mysql en Foros del Web. Buenos dias amigos, estoy trabado en una consulta y no doy con el problema... Veran tengo tablas que contienen una cantidad de Ingredientes tales como: ...
  #1 (permalink)  
Antiguo 22/04/2014, 10:11
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Seleccionar campos que contengan alguna palabra o Conjunto de Palabras

Buenos dias amigos, estoy trabado en una consulta y no doy con el problema...

Veran tengo tablas que contienen una cantidad de Ingredientes tales como:
t1.nombre
ACEITUNA NEGRA
ALMENDRAS
ACEITUNA VERDE
POLLO

y en otra tabla tengo los mismos productos pero con variaciones tales como:
t2.nombre (de otra bd)
ACEITUNAS NEGRAS KG
ALMENDRAS KG
ACEITUNAS VERDES KG
POLLO KG

entonces busco hacer una consulta donde pueda buscar los productos de la t2 que coincidan con la t1 pero como no estan en la misma BD (incluso no son el mismo sistema de bd (una es MySQl (t1) y la otra Firebird (t2) ) lo que hago es comprar cada resultado de la t2 y ejecutar un query en la t1

pero si uso la instruccion LIKE
Código MySQL:
Ver original
  1. SELECT porc_nom as Producto, porc_med as medida, ABS(CAST(($diferencia/porc_med) AS DECIMAL (3,2))) as cantidad  FROM indicadores_porciones WHERE porc_nom LIKE '%ACEITUNAS NEGRAS KG%'
No me arroja nada, entonces hay una forma de decirle al mysql q desconga cada palabra y haga una consulta? estoy buscando la forma de hacerlo con REG EXP pero nose si podre de igualmanera hacerlo, alguien tiene un consejo?
  #2 (permalink)  
Antiguo 23/04/2014, 02:21
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Seleccionar campos que contengan alguna palabra o Conjunto de Palabras

LIKE '%ACEITUNAS NEGRAS KG%'

Los % indican que hay 0 o n caracteres delante y detras del texto, luego "ACEITUNA NEGRA" no se parece en nada a "ACEITUNAS NEGRAS KG", en este caso si haces la consulta al reves si que funcionaria

LIKE '%ACEITUNAS NEGRAS%'

Si la diferencia son simepre los tres últimos caracteres (" KG")

porc_nom = SUBSTRING('ACEITUNAS NEGRAS KG',1,LENGTH('ACEITUNAS NEGRAS KG')-3)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 23/04/2014, 07:58
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 3 meses
Puntos: 19
Respuesta: Seleccionar campos que contengan alguna palabra o Conjunto de Palabras

Cita:
Iniciado por quimfv Ver Mensaje
LIKE '%ACEITUNAS NEGRAS KG%'

Los % indican que hay 0 o n caracteres delante y detras del texto, luego "ACEITUNA NEGRA" no se parece en nada a "ACEITUNAS NEGRAS KG", en este caso si haces la consulta al reves si que funcionaria

LIKE '%ACEITUNAS NEGRAS%'

Si la diferencia son simepre los tres últimos caracteres (" KG")

porc_nom = SUBSTRING('ACEITUNAS NEGRAS KG',1,LENGTH('ACEITUNAS NEGRAS KG')-3)
Resulta que alrevez no puedo hacer la consulta porq una bd es local y cuando capturo todos los datos los mando a un servidor web con bd Mysql, por eso lo q hago es un bucle y x cada valor lo consulto en la bd en el servidor...

creeme utilice todos esos metodos y no encontre manera de hacerlo...

Lo que hice para "solucionar" es igualar ambos inventarios (los nombres de los productos) de tal manera no tendre problemas para consultar...

Etiquetas: alguna, campos, conjunto, palabra, palabras, select, sql, tabla
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 12:41.