Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/02/2012, 23:04
luisdelbar
 
Fecha de Ingreso: marzo-2009
Mensajes: 61
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ¿Como buscar una Frase Exacta en mi base de datos?

Hola!

Bueno, tengo esto casi resuelto al 80% o más, si alguien tiene mejores sugerencias se los agradeceré en infinito.
Al menos ya logré obtener el resultado que quería.

Al buscar: Alec Fisher
ya me aparece como primer resultado: Critical Thinking Introduction Alec Fisher y después los demás de Fisher Price

Que es exactamente lo que quería, esto lo resolví con esta sentencia:
(como ya vieron la tabla se llama: 449_FIRST_TABLE y ROUTETXT y TITLETXT son los campos donde estoy buscando, y obviamente $term es el nombre de lo que se pone en la casilla de búsqueda, disculpen que me exprese así es que soy totalmente autodidacta en esto )

SELECT * from 449_FIRST_TABLE where ROUTETXT like '%$term%' or TITLETXT like '%$term%' UNION SELECT * FROM 449_FIRST_TABLE WHERE MATCH (ROUTETXT,TITLETXT) AGAINST ('%$term%')

Como pueden ver lo arreglé poniendo primero un LIKE y después las sentencia con MATCH y funciona muy bien.

Sólo hay un pequeño detalle
Recordemos que mi búsqueda es "Critical Thinking Introduction Alec Fisher"

El buscador toma en cuenta el orden de las palabras, es decir, si yo busco: "Alec Fisher" o "Critical Thinking" o incluso "Thinking Introduction" todo está bien, pero esto es porque como pueden ver, esas palabras están exactamente en ese orden en el registro

Pero si busco: Fisher Alec
nuevamente me devuelve los resultados de Fisher Price, si se cambia el orden, ya no lo encuentra...

¿Habrá alguna forma de que no considere el orden de las palabras e intente buscar todas en un mismo registro? o en otras palabras ¿Hacer que primero muestre los registros que incluyen todas las palabras de búsqueda sin importar el órden?

Gracias!