Database
 sql >> Base de Dados >  >> RDS >> Database

Como usar LIKE no SQL

Problema:


Você gostaria de encontrar uma substring que corresponda a um padrão em uma string.

Exemplo:


Nosso banco de dados possui uma tabela chamada cliente com dados nas seguintes colunas:id , first_name , last_name , e city .
id first_name last_name cidade
1 Alan Watson Madri
2 Lisa Preto Cingapura
3 Laura Williams Seattle
4 Milão Tijolo Seul

Vamos ver alguns exemplos de correspondência de padrões em SQL.

Exemplo 1:


Vamos exibir o nome, sobrenome e cidade de cada cliente cujo nome da cidade começa com a letra 'S'.

Solução:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%';
last_name first_name cidade
Lisa Preto S Ingapore
Milão Tijolo S eul
Laura Williams S peludo

Usamos o curinga %, que representa zero ou mais caracteres desconhecidos. Este curinga pode ser usado em qualquer lugar na string.

Exemplo 2:


Vamos mostrar o nome, sobrenome e cidade de cada cliente cujo nome da cidade contém exatamente cinco caracteres.

Solução:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE '_____';

Aqui está o resultado:
last_name first_name cidade
Milão Tijolo Seul

O curinga de sublinhado pode ser usado para representar um único caractere desconhecido. Assim, usando cinco delas seguidas, podemos representar todas as strings com cinco caracteres. Em nosso exemplo, a única cidade que corresponde a essa descrição é Seul.

Exemplo 3:


Vamos mostrar o nome, sobrenome e cidade de cada cliente cuja cidade começa com a letra 'S' e tem a letra 'o' como o penúltimo caractere.

Solução:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%o__';

Aqui está o resultado:
last_name first_name cidade
Lisa Preto S ingapo re
Milão Tijolo S eo ul

A consulta retornou apenas dois registros:Lisa Black de S ingapo re e Milan Brick de S eo ul. Essas cidades correspondem ao padrão fornecido. Aqui, combinamos os dois curingas para gerar um padrão mais específico:todas as strings começando com uma letra maiúscula 'S' e contendo qualquer número de outros caracteres depois disso, desde que o penúltimo caractere seja uma letra minúscula 'o. '

Discussão:


Se você deseja selecionar registros nos quais uma string corresponde a um padrão específico, você pode usar um LIKE cláusula como a condição em um WHERE cláusula. Depois de WHERE , liste o nome da coluna (por exemplo, city ) seguido por um LIKE cláusula especificando o padrão de string (por exemplo, 'S%o__' ) procurar por.

Como vimos nos exemplos, você pode usar dois caracteres especiais conhecidos como curingas para representar caracteres desconhecidos:
  • O curinga '%' indica zero ou mais caracteres.
  • O curinga '_' denota qualquer caractere único.

Você pode combinar esses curingas para obter alguns resultados realmente poderosos. Você também pode encadear mais de um LIKE doença. Finalmente, você pode usar o NOT operador para encontrar strings que não corresponder ao padrão fornecido.