Ajuda com Consulta SQL
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.
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
Curtidas 0
Respostas
Macario
26/09/2006
Ola.
Mas veja esta nao e uma boa maneira para pesquisa.
Select Campo from Tabela where campo like ´¬TEXTOPESQUISA¬´
Mas veja esta nao e uma boa maneira para pesquisa.
GOSTEI 0
Raserafim
26/09/2006
vc tb pode utilizar o seguinte:
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.
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
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´.
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
26/09/2006
Perguntando mais uma vez,a melhor performance (no meu caso) é usando LIKE ou CONTAINING ?
GOSTEI 0
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
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.
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
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
para retornar apenas os ultimos 5 caracteres, comparando apenas os ultimos 5 caracteres
[]´s
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