Pular para o conteúdo principal
Documentos
Sintaxe básicaFunções JSONAcionadoresGerenciamento de tabelas e esquemasFunções de cadeia de caracteresFunções matemáticasFunções de dataBancos de dadosÍndices

PostgreSQL LIKE

A função de string `LIKE` no PostgreSQL é usada para combinar padrões de texto dentro dos valores da coluna. Ele permite que você pesquise sequências específicas de caracteres em tipos de dados de cadeia de caracteres.

Uso

A função `LIKE` é comumente usada em instruções `SELECT` para filtrar dados com base em padrões de texto específicos. É especialmente útil para localizar linhas em que o valor de uma coluna corresponde a um determinado padrão.

SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;

Nessa sintaxe, `column_name LIKE pattern` verifica se `column_name` corresponde ao `pattern` especificado, que pode incluir caracteres curinga como `%` e `_`.

Exemplos

1. Uso básico com curinga %

SELECT *
FROM products
WHERE product_name LIKE 'Apple%';

Este exemplo recupera todas as tabelas da tabela `products` em que `product_name` começa com "Apple".

2. Correspondência de padrões com curinga _

SELECT customer_id, customer_name
FROM customers
WHERE customer_name LIKE 'J_n%';

Essa consulta seleciona clientes cujo `customer_name` começa com "J", tem qualquer caractere único na segunda posição e é seguido por "n".

3. Combinando LIKE com o operador NOT

SELECT order_id, order_date
FROM orders
WHERE order_status NOT LIKE 'Cancelled%';

Esse exemplo busca pedidos na tabela `orders` em que `order_status` não começa com "Cancelled".

4. Usando a cláusula ESCAPE

SELECT comment_id
FROM comments
WHERE comment_text LIKE '100\% sure' ESCAPE '\';

Essa consulta encontra comentários que contêm o texto "100%" literalmente, usando a barra invertida `\` para escapar do caractere `%`.

Dicas e práticas recomendadas

  • Use `%` e `_` com sabedoria. O curinga `%` corresponde a qualquer sequência de caracteres, enquanto `_` corresponde a um único caractere.
  • Otimize o desempenho. Tenha cuidado com `%` no início dos padrões, pois isso pode reduzir o desempenho da consulta. Observe que os índices geralmente não são usados quando o padrão começa com um curinga.
  • Considere a sensibilidade a maiúsculas e minúsculas. Use `ILIKE` para correspondência de padrões sem distinção entre maiúsculas e minúsculas, se necessário.
  • Combine com outras condições. Use `LIKE` com condições adicionais `WHERE` para restringir os resultados de forma eficaz.
  • Escape de caracteres especiais. Use a cláusula `ESCAPE` para pesquisar caracteres literais `%` ou `_` quando necessário, conforme mostrado no exemplo.
  • Explorar alternativas. Considere o uso do `SIMILAR TO` para necessidades mais complexas de correspondência de padrões, pois ele oferece suporte a expressões regulares.