Ver Mensaje Individual
  #2  
Antiguo 09-02-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Reputación: 20
keyboy Va por buen camino
En términos generales podrías comenzar separando las palabras en una lista; cosa que puedes hacer fácilmente asignando el contenido del Edit a la propiedad CommaText de un TStringList. No importa que no haya comas, el TStringList considera los espacio igualmente como separadores.

Luego recorrerías la lista para construir dinámicamente la condición de la sentencia, que sería más o menos así:

Código SQL [-]
where
  campo like "%casa%" or
  campo like "%gato%" or
  campo like "%mujer%" or
  campo like "%amigo%"

es decir, una de estas líneas por cada palabra del Edit.

No obstante, veo que usas las componentes Zeos, lo que me lleva a pensar que utilizas MySQL. De ser así, pienso que te sería mejor opción crear un índice FULL TEXT sobre el campo en cuestión:

Código SQL [-]
alter table lista add fulltext(campo)

ya que, entonces, puedes utilizar la maquinaria de MySQL para este tipo de búsquedas. Por ejemplo:

Código SQL [-]
select * from lista
where match(campo) against('casa gato mujer amigo')

Bye
Responder Con Cita