Fórum Devo usar o Like ou starting With ? #50251
02/04/2005
0
ai devo abrir a tela de consulta com todos os produtos com BALA
Estou usando da seguinte forma na clausula Where
Where P.BUSC_PROD LIKE ´BALA¬´
So que tabelas com muitos produtos demora um pouco... Eu ja criei o indice sobre o campo BUSC_PROD
Vi na internet o comando abaixo
Where P.BUSC_PROD starting with ´BALA´
Qual a melhor maneira? Qual vai trazer os resultados mais rapidamente?
Sistemp
Curtir tópico
+ 0Posts
03/04/2005
Joaoshi
Tenho a impressão que se o campo a ser pesquisado tem um indice, as duas formas estão corretas (starting with ´BALA´ ou like ´BALA¬).
Faça um teste com IbExpert (Supondo ser FB ou Interbase).
Espero ter ajudado.
Gostei + 0
04/04/2005
Emerson Nascimento
o diferencial se dá se sua pesquisa puder ser feita por qualquer posição do conteúdo.
// para registros [i:3cc6417815]iniciados[/i:3cc6417815] com o conteúdo desejado
select *
from tabela
where campo like ´CONTEUDO¬´
ou
where campo starting with ´CONTEUDO´
// para registros que [i:3cc6417815]contenham[/i:3cc6417815] o conteúdo desejado
select *
from tabela
where campo like ´¬CONTEUDO¬´
// para registros que [i:3cc6417815]terminem[/i:3cc6417815] com o conteúdo desejado
select *
from tabela
where campo like ´¬CONTEUDO´
note que o like funciona para todos os casos, mudando apenas a posição do curinga (¬).
Gostei + 0
04/04/2005
Afarias
Imagine q vc está fazendo uma consulta parametrizada:
select * from tabela
where campo like :param
bom, o otimizador do Interbase (ou FB) não tem como saber se o parâmetro vai receber ´A´, ´A¬´, ´¬A´ ou ´¬A¬´
sendo assim, consultas parametrizadas com LIKE *nunca* usam índice. Enquanto o STARTING [WITH] garante q a consulta *sempre* utilize um índice.
T+
Gostei + 0
04/04/2005
Rafael_iga
mas qual eh a melhor ?
Gostei + 0
04/04/2005
Beppe
:shock:
Well, STARTING WITH, sempre que puder ser usada.
Gostei + 0
05/04/2005
Afarias
Gostei + 0
05/04/2005
Joaoshi
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)