MySQL - Consulta mysql muy sencilla (y esencial)

 
Vista:

Consulta mysql muy sencilla (y esencial)

Publicado por mysqlman (1 intervención) el 01/06/2006 19:29:24
Hola a todos foreros!

¿Cómo puedo buscar en un campo una cadena determinada sin importar el orden de sus palabras? Por ejemplo, buscar en el campo titulo "fernan caballero", pero también "caballero fernan". Es decir, que no importe el orden de las palabras introducidas por el usuario de la web (se trata de la web de una libreria).

Una última cuestión... si un usuario pone "caballero fernan" como texto a buscar y en la base de datos pone "caballero, fernan" (notar la coma detras de "caballero"), la consulta no produce ningún resultado... he pensado eliminar algunos caracteres que introduzca el usuario (comas y puntos por ejemplo). Creo que con la primera duda (la del orden de las palabras) y la eliminación de ciertos caracteres se produciran mejores resultados. ¿Creeis k es correcta esta teoria?

Gracias mil de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta mysql muy sencilla (y esencial)

Publicado por Juan (29 intervenciones) el 01/06/2006 22:02:07
Mira yo creo que eso se podria resovler a nivel de logica en la pagina mas que a nviel de base de datos.
Cuando el usuario le de a buscar podrias separar la cadena de entrada en tokens (eliminando los signos de puntuacion, palabras comunes como el y la etc) y despues hacer un mega or en el query.
Entonces tu entrada seria
select *
from libros
where descripcion like "%caballero%" or
descripcion like "%fernan%"

Ahora nose cuan lenta sea la ejecucion de la consulta. Alli podrias usar un top y un poco de paginacion de la consulta, que si es a nivel de base de datos.
Espero te sirva
Juan
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar