Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Outras Alternativas ao Uso do Like no Interbase/Firebird

Este artigo destina-se a quem utiliza Interbase/Firebird e utiliza o comando like com o % para realizar buscas, saiba que existe uma forma mais fácil de realizar buscas sem o uso do %.

Imagine uma tabela chamada de CLIENTES, com a seguinte estrutura:

CREATE TABLE CLIENTES
(
  CLIENTES_ID INTEGER NOT NULL,
  CLIENTES_NOME VARCHAR(50) CHARACTER SET WIN1252 NOT NULL
);
 
ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES_CHAVE PRIMARY KEY (CLIENTES_ID);
 
Agora imagine que você queira buscar todos os clientes que começam pela letra A, você realizaria a seguinte consulta:
 
SELECT
  *
FROM
  CLIENTES
WHERE CLIENTES_NOME LIKE 'A%';
 
Ou seja, para simular o começando por A e qualquer outro caracter, seria utilizado LIKE 'A%'.
 
Agora vejamos o mesmo comando, com a utilização do comando STARTING WITH(começando com):
 
SELECT
  *
FROM
  CLIENTES
WHERE CLIENTES_NOME STARTING WITH 'A';
 
Note que não precisamos mais do %.
 
o starting with sempre usa índice (se o mesmo existir) pois ele faz a procura pelo início da string.
 
Agora imagine que você queira buscar todos os clientes que contenham a letra A, você realizaria a seguinte consulta:
 
SELECT
  *
FROM
  CLIENTES
WHERE CLIENTES_NOME LIKE '%a%';
 
Ou seja, para simular o contendo a e qualquer outro caracter, seria utilizado LIKE '%a%'.
 
Agora vejamos o mesmo comando, com a utilização do comando CONTAINING(contendo):
 
SELECT
  *
FROM
  CLIENTES
WHERE CLIENTES_NOME CONTAINING 'a';
 
Mais uma vez eliminamos o uso do %.
 
Diferentemente do starting with, o contaning não usa índice (mesmo se ele existir), pois, ele pode procurar em qualquer parte da string.
Quanto ao like, ele se comporta como um dos dois anteriories... se for uma string 'A%' usa índice, mas se for
'%a%' não usa.
 
Até a próxima.




    4 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Junior Miranda
Boa tarde!

Ao ler o título do artigo, imaginei... Alguém identificou um problema no predicado LIKE! Depois percebi que na verdade, se tratava de uma alternativa ao mesmo! É Imprescindível, que o título deixe evidenciado o que será abordado! O que descrevi nada mais é, do que uma crítica construtiva!

[]'s


em 26/7/2010 18:48 - Responder

 

  Altieri Pereira

concordo com o que o Junior disse, pelo titulo, pensei que era uma forma melhor de fazer essa consulta, mas é apenas uma alternativa.

Mas valeu.



em 26/7/2010 20:19 - Responder
 

[Comentário do autor]   Eriley Vilagrande Barbosa
Obrigado pela critica construtiva, o titulo do artigo já foi alterado.


em 27/7/2010 11:19 - Responder
 

[Comentário do autor] Eriley Vilagrande Barbosa

Achei muito Interessante e inovador faça sempre algo que possa ajudar a todos tenha uma otima sexta

Alessanda!!!


em 26/8/2010 22:27 - Responder

 



[Este post ainda não foi associado a uma sequência]
Autor
Eriley Vilagrande Barbosa

É formado em informatica bacharelado pela URCAMP/Bagé, Programador Delphi, Firebird, SQL Server e Oracle.


Space do autor
Estatísticas #
Favorito:
Comentários:
Feedback:
Utilidade:
1   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível somente para quem possui Créditos DevMedia. (Ele não está associado a nenhuma publicação DevMedia).


  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03