SQL - Buqueda multiple

 
Vista:

Buqueda multiple

Publicado por Dario (3 intervenciones) el 10/11/2010 15:30:04
Amigos tengo una tabla de 10 campos en la que quiero hacer una consulta cuyo dato a buscar esta en un campo pero el problemas es el siguiente.

SI por ejemplo busco "FORD" no hay problemas el select campo a campo me da el reultado pero quiero hacer una busqueda que sea "23.30 FORD" o sea que el campo contiene dos palabras separadas en cuyo caso ambas palabras debes ser buscadas en cada campo y devolver la cosulta para una medida de reten de 23.30 y es para Ford.

Como lograria una sentencia que parta de un solo campo de busqueda?...

Gracias
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Buqueda multiple

Publicado por Leonardo Josué (1173 intervenciones) el 10/11/2010 16:08:02
Buenos días Dario:

Cuando implementas búsquedas compuestas (más de una palabra) puede ser recomendable utilizar cátalogos FULL TEXT. No mencionas en tu post que Manejador de BD estás utilizando, pero la mayoría maneja este tipo de catálogos... teclea en cualquier buscador "BUSQUEDAS FULL TEXT" o "BÚSQUEDAS DE TEXTO COMPLETO" para más información.

Otra técnica, que puede no resultar tan sencilla es descomponer tu frase a buscar y armar una condición OR para cada una de ellas, Te pongo el ejemplo de cómo sería con MySQL:

SELECT * FROM TuTabla WHERE
CONCAT(Campo1, Campo2, Campo3............., Campo10) LIKE '%23.30%' OR
CONCAT(Campo1, Campo2, Campo3............., Campo10) LIKE '%FORD%'

Saludos
Leo.
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

RE:Buqueda multiple

Publicado por Dario (3 intervenciones) el 10/11/2010 17:28:39
La idea esta implementada como tu ejemplo pero lo que no me doy cuenta es si en el campo de buscar pongo "23.30 ford" que majeo previo debo hacer para que queden dos textos a buscar "23:30" y "ford" o sea extraer las N palabras que haya en ese campo separado por espacios, coma o lo que se tome como separador.
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Buqueda multiple

Publicado por Leonardo Josué (1173 intervenciones) el 12/11/2010 16:44:06
Dario, creo que te estás complicando la vida, ya te comenté en el post anterior que la mejor alternativa que tienes es utilizar búsquedas de texto completo (FULL-TEXT) para que te quites de problemas. dale un vistazo a ese tema.

Por otro lado, para dividir una frase en sus componentes sería más fácil de implementar desde el lenguaje de programación que estés utilizando (ASP, PHP, JAVA, .NET, etc). No recuerdo ningún manejador de BD que tenga implementada la función SPLIT como propia, en su defecto deberías crear tu propia función para hacerlo.

Saludos
Leo.
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

RE:Buqueda multiple

Publicado por Dario (3 intervenciones) el 13/11/2010 03:08:32
okey, leeremos entonces... gracias
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