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

duda con sentencia

Estas en el tema de duda con sentencia en el foro de Bases de Datos General en Foros del Web. Hola amigos he estado rompiendo la cabeza y espero que alguien pueda ayudarme a repararla jajaj, bueno mi problema es que uso esta sentencia en ...
  #1 (permalink)  
Antiguo 23/04/2009, 17:48
 
Fecha de Ingreso: enero-2009
Ubicación: Tijuana
Mensajes: 80
Antigüedad: 15 años, 4 meses
Puntos: 2
duda con sentencia

Hola amigos he estado rompiendo la cabeza y espero que alguien pueda ayudarme a repararla jajaj, bueno mi problema es que uso esta sentencia en mysql y resulta que solamente y explicitamente me aparece el resultado con llanteras y mi problema es que en la tabla de giros tengo registros con llantera alguien me puede decir de que modo puedo alterar esta consulta por favor.

de antemano muchas gracias.
por cierto que no me afecte en la otra palabra otay por que pienso usar variables en php y solamente asi puedo usarlas, o espero alguna recomendacion. mil gracias.

atte. jose

SELECT * FROM fundador WHERE MATCH(nombre,direccion)
AGAINST('llanteras*' 'otay*' IN BOOLEAN MODE)
  #2 (permalink)  
Antiguo 23/04/2009, 21:40
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 4 meses
Puntos: 7
Respuesta: duda con sentencia

No entiendo... ¿estás diciendo que te devuelve sólo resultados con la palabra "llanteras" pero no que la contengan?

¿Con qué fin estás haciendo esta sentencia? Tiene que haber una forma más convencional de resolverlo.
  #3 (permalink)  
Antiguo 24/04/2009, 10:27
 
Fecha de Ingreso: enero-2009
Ubicación: Tijuana
Mensajes: 80
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: duda con sentencia

SELECT * FROM fundador WHERE MATCH(nombre,direccion)
AGAINST('llanteras*' 'otay*' IN BOOLEAN MODE)


Hola buen dia, adolfiten, lo que pasa es que en mi base de datos tengo registros como:
llantera pepe (ejemplo)
y cuando ejecuto la sentencia no me aparece solamente y exclusivamente la que contenga la palabra "llanteras" y necesito que aparezcan las dos cuando
busco "llanteras"

gracias por responder.
jose.
  #4 (permalink)  
Antiguo 24/04/2009, 10:52
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 4 meses
Puntos: 7
Respuesta: duda con sentencia

No entiendo mucho pero esto quizá se aproxima a lo que necesitás.

Si mal no entiendo estás buscando los registros que tengan el mismo nombre y la misma dirección que los parámetros que le pasás. En el caso de que estés queriendo hacer eso, la sentencia sería:

Código Sentencia SQL:
Ver original
  1. SELECT *
  2. FROM fundador
  3. WHERE nombre   = 'nombre_que_pasa_por_parametro' AND
  4.              direccion = 'direccion_que_pasa_por_parametro';

También se puede cambiar y poner " nombre LIKE '%nombre_que_pasa_por_parametro%' y esto lo que hace es traer los registros que contengan el nombre, traería por ejemplo:

NOMBRE: jose

1-jose luis
2-jose
3-joselkjh
4-maria jose
5-palabracualquierajose siguiente

Lo que me gustaría que expusieras es para qué estás haciendo esta comparación, quizá nos guíe y nos des algún otro recurso para darte una solución al problema.
  #5 (permalink)  
Antiguo 24/04/2009, 12:18
 
Fecha de Ingreso: enero-2009
Ubicación: Tijuana
Mensajes: 80
Antigüedad: 15 años, 4 meses
Puntos: 2
De acuerdo Respuesta: duda con sentencia

ya habia usado esa consulta tambien y me sigue sin funcionar.

estoy haciendo un buscador interno con php, y en mi base de datos tengo la tabla fundador con los campos nombre, direccion, id_fundador.

en los registros tengo: llanteras jose, llantera pepe

y luego cuando quiero hacer la consulta en mysql

SELECT * FROM fundador WHERE MATCH(nombre,direccion)
AGAINST('llanteras*' 'otay*' IN BOOLEAN MODE)


en el resultado solo me aparece llanteras jose, y no me aparece llantera pepe y se supone que la frase contiene la palabra llantera y no me aparece ese es mi problema quiero que aparezcan aunque pongan llanteras de tijuana, si pongo esto tambien quiero que aparezca llantera pepe por que el simple hecho que contiene la palabra llantera.

y tambien use las siguientes sentencias:
SELECT *
FROM fundador
WHERE `nombre` LIKE '%llanteras%'
AND `direccion` LIKE '%otay%'
AND `direccion` LIKE '%tijuana%'
y resulta que pasa lo mismo.


muchas gracias por ayudar.
  #6 (permalink)  
Antiguo 24/04/2009, 22:57
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 4 meses
Puntos: 7
Respuesta: duda con sentencia

Cita:
Iniciado por jose-web Ver Mensaje
SELECT * FROM fundador WHERE MATCH(nombre,direccion)
AGAINST('llanteras*' 'otay*' IN BOOLEAN MODE)


en el resultado solo me aparece llanteras jose, y no me aparece llantera pepe y se supone que la frase contiene la palabra llantera y no me aparece ese es mi problema quiero que aparezcan aunque pongan llanteras de tijuana, si pongo esto tambien quiero que aparezca llantera pepe por que el simple hecho que contiene la palabra llantera.
Acá hay algo claro. Si buscás '%llanteras%', no sirven los registros cuyo campo nombre contenga "llantera", porque la "s" hace la diferencia.

Por otra parte la última sentencia que pusiste trae sólo los registros donde:
-nombre contenga "llanteras"
-dirección contenga "otay" Y "tijuana"

Si usás:

Código SENTENCIA SQL:
Ver original
  1. SELECT *
  2. FROM fundador
  3. WHERE nombre LIKE '%llantera%';

tiene que traer ambos registros, el de pepe y el de josé.

Un consejo: para "depurar" y testear las sentencias, andá quitando condiciones y comparando resultados con un juego de datos de prueba.
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 20:12.