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

De AleloWiki
Ir para: navegação, pesquisa
(coringa _)
(coringa _)
 
Linha 75: Linha 75:
 
  SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '_lias';
 
  SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '_lias';
  
O ''coringa'' _ (''underline'') permite substituir quantos caracteres forem necessários; para cada caracter é necessário colocar um ''coringa'' _ (''underline''), exemplo:
+
O ''coringa'' _ (''underline'') permite substituir caracteres aleatórios de uma mesma sequência; para cada caracter é necessário colocar um ''coringa'' _ (''underline''), exemplo:
  
 
  SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '__ias';
 
  SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '__ias';

Edição atual tal como às 13h23min de 23 de novembro de 2021

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

Comandos aplicados ao exemplo de tabela de dados a seguir:

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 * FRO nome_da_tabela WHERE nome IN ('José', 'Manoel');

O comando IN faz distinção entre maiúsculas e minúsculas; ao filtrar pelo nome josé o resultado não exibe o id 2, porque o na tabela o José é grifado com a primeira letra maiúscula.

Comando LIKE

Serve para buscar parte de palavras ou números. O like é case-sensitive, logo maria é diferente de MARIA.

O comando LIKE utilza coringas para substituir partes do texto, conforme a seguir:

  • % - Significa qualquer quantidade de caracteres.
  • _ - Significa um caractere.

Coringa %

Busca todas as palavras que começam com a letra E:

SELECT * FROM 'nome_da_tabela WHERE nome LIKE 'E%';

Busca todas as palavras que terminam com a letra 'a':

SELECT * FROM NOME_TABELA where nome like '%a';

Buscar todas as palavras que contenham a sílaba ‘li’.

SELECT * FROM 'nome_da_tabela WHERE nome LIKE '%li%';

Buscar todas palavras que contenham a letra ‘a’, acrescido de algum outro termo (%) e outros elementos a partir da letra (e);

SELECT * FROM 'nome_da_tabela' WHERE nome LIKE'%a%e%';

coringa _

O coringa _ (underline) substitui um caractere, ou seja, uma letra.

Buscar o nome Elias, sem considerar a primeira letra do nome.

SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '_lias';

O coringa _ (underline) permite substituir caracteres aleatórios de uma mesma sequência; para cada caracter é necessário colocar um coringa _ (underline), exemplo:

SELECT * FROM 'nome_da_tabela' WHERE nome LIKE '__ias';

Podemos combinar com o coringa %.

select * from NOME_TABELA where nomes like '_li%';

Comando ILIKE

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%';