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
);
(
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';
*
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.


Junior Miranda
em 26/7/2010 18:48 - Responder
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
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 Pereiraconcordo 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
em 27/7/2010 11:19 - Responder
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
em 26/8/2010 22:27 - Responder
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]
Você está em:
canal SQL
Publicidade
Eriley Vilagrande Barbosa
Space do autor
É formado em informatica bacharelado pela URCAMP/Bagé, Programador Delphi, Firebird, SQL Server e Oracle.
Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

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