Mudanças entre as edições de "Postgres: do in, like, ilike"

De AleloWiki
Ir para: navegação, pesquisa
(Criou página com 'Como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT. Vamos utilizar com exemplo a tabela abaixo: tabela {| class="wikitable" !Id !Nome |- |2 |José |- |3...')
 
Linha 8: Linha 8:
 
!Id
 
!Id
 
!Nome
 
!Nome
 +
|-
 +
|1
 +
|Elias
 
|-
 
|-
 
|2
 
|2

Edição das 11h26min de 23 de novembro de 2021

Como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT.

Vamos utilizar com exemplo a tabela abaixo:

tabela

Id Nome
1 Elias
2 José
3 Manoel
4 Elizeu
5 Michael

Comando IN

Para trazer apenas o id 1 e 5:

Exemplo:

SELECT * FROM nome_da_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%';