[firebase-br] Entrada na Lista e 1º Duvida Pesquisa Enorme SQL

Mario H brujeria em task.com.br
Qua Fev 22 17:16:02 -03 2006


Ae pessoal,
  fazia muito tempo que eu não participava de uma lista de discussão e 
resolvi
  me integrar nesta, apos ver varias discussoes de alto nivel.
  Gostaria de me apresentar, meu nome é Mario Henrique e mexo com 
computadores
  desde q me lembro por gente. Hoje tenho 23 e ja passei por varias 
linguagens
  mas esta na hora de desenvolver o lado de BD.
  Espero contribuir para o alto nivel da lista e tambem pedir informações 
como
  todo pobre mortal =)

  Vou começar com uma duvida:
  Gostaria de fazer uma pesquisa de tal maneira que se uma pessoa escrever
  "Ola amigos companheiros" retornasse todos os campos da tabela que tiver
  '%OLA%' e/ou '%AMIGOS%' e/ou '%COMPANHEIROS%'
  Mas para fazer isso meu SQL ta ficando imenso, porque para cada campo 
tenho
  q fazer CAMPO LIKE  '%OLA%' OR CAMPO LIKE '%AMIGOS%' OR CAMPO LIKE
  '%COMPANHEIROS%'.
  Eu procurei nas documentações e existe a ferramente IN, de tal forma que 
eu
  poderia fazer CAMPO IN ('OLA','AMIGOS','COMPANHEIROS').
  Assim seria perfeito, a nao ser que não dá para usar o operador %. Daí a
  consulta não iria identifica palavras como 'paOLA' entre outros..
  Tentei também usar o IN junto com o LIKE , tipo CAMPO LIKE IN ou CAMPO IN
  LIKE, e parece que o firebird nao tem suporte a isto. Eu posso usar o 
union,
  mas a pesquisa vai ficar ainda maior.

  Alguem tem uma sugesão de como fazer esta pesquisa mais eficaz? Imagine
  fazer uma pesquisa desta, com 3 parametros, 5 tabelas relacionadas e mais 
7
  campos por tabela. Dai teriamos uma sql enorme com 3x5x7 = 105 expressoes
  como TABELA.CAMPO LIKE '%parametro%'.

  Lembrando que eu posso usar ao invez do LIKE o CONTAINING, para encurtar 
ainda mais
  e nao usar o operador %.


  E isso ae pessoal, muito obrigado e espero sempre poder ajudar tambem!
  Mario Henrique






Mais detalhes sobre a lista de discussão lista