[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