Ver Mensaje Individual
  #3  
Antiguo 14-04-2011
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 23
guillotmarc Va por buen camino
No, no existe nada similar para Firebird.

Pero te puedes construir una consulta, parecida a la que proponías inicialmente, en la que además calculas el número de coincidencias sobre las palabras buscadas, y ordenas de mayor a menor en función de esas coincidencias.

Por ejplo., para buscar por 3 palabras :

Código SQL [-]
select CLI_DIRECCION,
       (case when CLI_DIRECCION containing :PALABRA1 then 1 else 0 end +
        case when CLI_DIRECCION containing :PALABRA2 then 1 else 0 end +
        case when CLI_DIRECCION containing :PALABRA2 then 1 else 0 end) as COINCIDENCIAS
from CL_CLIENTES
where CLI_DIRECCION containing :PALABRA1 or
      CLI_DIRECCION containing :PALABRA2 or
      CLI_DIRECCION containing :PALABRA3
order by COINCIDENCIAS descending

Naturalmente puedes ampliar la consulta hasta 10, 15, 20 o 50 palabras, de manera que la misma consulta te sirva para cualquier búsqueda que quiera hacer el usuario (en un momento dado solo tendrás que asignar valor a tantos parámetros como palabras está buscando el usuario).

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 14-04-2011 a las 19:35:16.
Responder Con Cita