Mudanças entre as edições de "Postgres: do in, like, ilike"
Linha 1: | Linha 1: | ||
Como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT. | Como utilizar as clausulas IN, LIKE, ILIKE no PostgreSQL em um SELECT. | ||
− | + | Comandos aplicados ao exemplo de tabela de dados a seguir: | |
− | |||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
Linha 38: | Linha 36: | ||
Exemplo: | 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== | |
− | |||
− | O 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’. | 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. | |
− | O coringa _ (underline) substitui um caractere, ou seja, uma letra. | ||
Para buscar por exemplo o nome Elias, sem considerar a primeira letra do nome. | Para buscar por exemplo o nome Elias, sem considerar a primeira letra do nome. | ||
Linha 83: | Linha 83: | ||
select * from NOME_TABELA where nomes like '_li%'; | 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 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. | ||
Linha 91: | Linha 92: | ||
Usando o coringa %. | Usando o coringa %. | ||
+ | |||
select * from NOME_TABELA where nome ilike 'e%' | select * from NOME_TABELA where nome ilike 'e%' | ||
Linha 100: | Linha 102: | ||
Usando o coringa _. | Usando o coringa _. | ||
+ | |||
select * from NOME_TABELA where nomes ilike '_lias'; | select * from NOME_TABELA where nomes ilike '_lias'; | ||
Edição das 11h42min 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.
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%';
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%';