Posted on: March 23, 2021 12:04 AM
Posted by: Renato
Categories: postgresql sql
Views: 1644
POSTGRESQL - Uso do IN, LIKE e ILIKE
Vou comentar sobre como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT.
Vamos utilizar com exemplo a tabela abaixo:
ID | NOMES
1 | Elias
2 | Jose
3 | Manoel
4 | Elizeu
5 | Michael
Usando o comando IN em um select.
Para trazer apenas o id 1 e 5, podemos utilizar a cláusula IN colocando entre parentes os números 1 e 5 separados por virgula.
Exemplo:
select * from NOME_TABELA where id in (1, 5);
Se desejar filtrar pelo nome “caracteres”, é necessário utilizar aspas simples para cada palavra, vamos filtrar o José e Manoel.
Exemplo:
select * from NOME_TABELA where nomes in ('José', 'Manoel');
Obs..: O in faz distinção entre maiúsculas e minusculas, então por exemplo, se filtrar por josé não exibiria o id 2 José, porque o J é maiúsculo.
Uso do LIKE em um select
O like é um comando muito útil no dia-a-dia de um desenvolvedor ou DBA, ele serve para trazer partes de palavras ou números. O like é case-sensitive, então ‘maria’ é diferente de ‘MARIA’.
O like utilza coringas para substituir partes do texto, segue os coringas abaixo:
% Significa qualquer quantidade de caracteres.
_ Significa um caractere.
Utilizando o coringa %.
Para buscar todas as palavras que começam com a letra E.
select * from NOME_TABELA where nome like 'E%'
Buscar todas as palavras que terminam com a letra ‘a’;
select * from NOME_TABELA where nomes like '%a';
Buscar todas as palavras que contenham a sílaba ‘li’.
select * from NOME_TABELA where nomes like '%li%';
Buscar todas palavras que contenham a letra ‘a’ alguma coisa e depois a letra ‘e’ mais alguma coisa escrita.
select * from NOME_TABELA where nomes like '%a%e%';
Utilizando o coringa _ .
O coringa _ (underline) substitui um caractere, ou seja, uma letra.
Para buscar por exemplo o nome Elias, sem considerar a primeira letra do nome.
select * from NOME_TABELA where nomes like '_lias';
Podemos substituir quantos forem necessários, só colocar mais “underlines”, exemplo:
select * from NOME_TABELA where nomes like '__ias';
Podemos combinar com o coringa %.
select * from NOME_TABELA where nomes like '_li%';
Uso do ILIKE no select
O ilike possui as mesmas características do like, porém não é case-sensitive, ou seja, não faz distinção entre maiúsculas e minusculas, então ‘MARIA’ é igual ‘maria’ para o ilike.
O ilike utiliza os mesmos coringas do like % e _.
Vou apenas postar os selects utilizando ilike porque as regras são as mesmas do like, apenas ele nao é case-sensitive.
Usando o coringa %.
select * from NOME_TABELA where nome ilike 'e%'
select * from NOME_TABELA where nomes ilike '%a';
select * from NOME_TABELA where nomes ilike '%li%';
select * from NOME_TABELA where nomes ilike '%a%e%';
Usando o coringa _.
select * from NOME_TABELA where nomes ilike '_lias';
select * from NOME_TABELA where nomes ilike '__ias';
select * from NOME_TABELA where nomes like '_li%';
Fonte: Elias - https://eliascastroblog.wordpress.com/2017/04/08/uso-do-in-like-ilike-no-postgresql/
Donate to Site
Renato
Developer