Ajuda com Consulta SQL

Delphi

26/09/2006

Preciso de uma ajuda,tenho 10 campos (FM...FM10)que são campos CHAR de 70 cada.
Como posso fazer uma pesquisa para saber se dentro de algum desses campo existe uma string qualquer?
Exemplo,em no campo FM cotem; abcde[123545[defds ,então preciso achar a string ´defds´,assim saberia que o campo FM contem essa string.
Uso um Edit onde se digita a string a ser procurada dentro do campo FM.
Uso o Delphi 7 +zeos+FireBird 1.5.
Agradeço a quem me ajudar.


Kroki

Kroki

Curtidas 0

Respostas

Macario

Macario

26/09/2006

Ola.


Select Campo from Tabela
where campo like ´¬TEXTOPESQUISA¬´




Mas veja esta nao e uma boa maneira para pesquisa.


GOSTEI 0
Raserafim

Raserafim

26/09/2006

vc tb pode utilizar o seguinte:
Select Campo from Tabela 
where campo containing :TEXTOPESQUISA


uma vez vi um tópico aqui no fórum que dizia que utilizando o like não era utilizado os índices.
como o firebird tem um comando para substituir o like, acredito eu que assim o índice é utilizado, mas não tenho certeza.


GOSTEI 0
Kroki

Kroki

26/09/2006

Isso parece que me ajudou,mas porque não é uma boa maneira?
Na verdade preciso achar a sequencia exata.
Não sei se isso ajuda,mas os campos aonde vou procurar a sequencia,tem o final de tamanho fixo,exemplo,o campo ´FLM´ tem no final da sequencia uma string fixa de 5 caracteres,mas o campo pode conter de 15 a 70 caracteres.
Se eu fosse colocar um campo para cada ítem,a tabela teria 50 campos a mais,mas misturando ela fica com 10,cada campo de 10 tem 5 strings misturadas onde uso um separador ´[´para achar cada ítem,mas o início dela não é de tamanho fixo,só o final,como disse cada campo pode ser,
´abcdefghijklmno[xxxxx[xxxxx´,ou ´abc[xxxx[xxxx´.Preciso achar os valores ´x´.


GOSTEI 0
Kroki

Kroki

26/09/2006

Perguntando mais uma vez,a melhor performance (no meu caso) é usando LIKE ou CONTAINING ?


GOSTEI 0
Macario

Macario

26/09/2006

Perguntando mais uma vez,a melhor performance (no meu caso) é usando LIKE ou CONTAINING ?


Ola.

Se o [b:fc240c3aee]Containing[/b:fc240c3aee] que voce se refere for [b:fc240c3aee]indice Full-text[/b:fc240c3aee], ele obtem melhor performance que o [b:fc240c3aee]Like[/b:fc240c3aee].


GOSTEI 0
Kroki

Kroki

26/09/2006

Tive que voltar a perguntar denovo;
Como se faz a pesquisa para se achar uma string no final de um campo Char?
Tipo,campo Char de 80 e quero comparar uma string com os ultimos 5 caracteres do campo.


GOSTEI 0
Macario

Macario

26/09/2006

Ola.

faço uso da funcao [b:ce66d8143d]substring[/b:ce66d8143d]


para retornar o campo inteiro, comparando apenas os ultimos 5 caracteres
select CAMPOCHAR80 from TABELA
where substring(CAMPOCHAR80,75,5) = ´12345´



para retornar apenas os ultimos 5 caracteres, comparando apenas os ultimos 5 caracteres
select substring(CAMPOCHAR80,75,5) from TABELA
where substring(CAMPOCHAR80,75,5) = ´12345´



[]´s


GOSTEI 0
POSTAR