Selecao DevMedia QUERO SER PRIME

Fórum Ajuda com Consulta SQL #330088

26/09/2006

0

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

Responder

Posts

26/09/2006

Macario

Ola.


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




Mas veja esta nao e uma boa maneira para pesquisa.


Responder

Gostei + 0

27/09/2006

Raserafim

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.


Responder

Gostei + 0

27/09/2006

Kroki

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´.


Responder

Gostei + 0

27/09/2006

Kroki

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


Responder

Gostei + 0

27/09/2006

Macario

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].


Responder

Gostei + 0

30/09/2006

Kroki

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.


Responder

Gostei + 0

30/09/2006

Macario

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar