Mudanças entre as edições de "Postgres: do in, like, ilike"
(→coringa _) |
|||
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
Linha 71: | Linha 71: | ||
O coringa _ (''underline'') substitui um caractere, ou seja, uma letra. | 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 %. | Podemos combinar com o coringa %. |
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%';