Categorias:

Funções de cadeia de caracteres e binários (Correspondência/Comparação)

LIKE ANY

Permite a correspondência, com distinção entre maiúsculas e minúsculas, de cadeias de caracteres com base na comparação com um ou mais padrões.

A operação é semelhante a LIKE. Se a cadeia de caracteres de entrada corresponder a qualquer um dos padrões, isto retornará a cadeia de caracteres de entrada.

Dica

Você pode usar o serviço de otimização de pesquisa para melhorar o desempenho de consultas que chamam essa função. Para obter mais detalhes, consulte Uso do serviço de otimização de pesquisa.

Consulte também:

LIKE

Sintaxe

<subject> LIKE ANY (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
Copy

Argumentos

Obrigatório:

subject

A cadeia de caracteres a ser comparada com o(s) padrão(s).

pattern#

O(s) padrão(s) com o(s) qual(is) a cadeia de caracteres deve ser comparada. Você deve especificar pelo menos um padrão.

Opcional:

escape_char

Caractere(s) inserido(s) na frente de um curinga para indicar que o curinga deve ser interpretado como um caractere normal e não como um curinga.

Retornos

O tipo de dados do valor retornado é VARCHAR.

Notas de uso

  • Curingas SQL são suportados em pattern:

    • Um sublinhado (_) corresponde a qualquer caractere individual.

    • Um sinal de porcentagem (%) corresponde a qualquer sequência de zero ou mais caracteres.

  • Os caracteres curinga em pattern incluem caracteres de nova linha (\n) em subject como correspondências.

  • O padrão é considerado compatível se corresponder a toda a cadeia de caracteres de entrada (assunto). Para combinar uma sequência em qualquer lugar dentro de uma cadeia de caracteres, comece e termine o padrão com % (por exemplo, %something%).

  • NULL não é compatível com NULL. Em outras palavras, se o assunto é NULL e um dos padrões é NULL, isso não é considerado uma correspondência.

Exemplos

Criar uma tabela que contenha algumas cadeias de caracteres:

CREATE OR REPLACE TABLE like_example(subject varchar(20));
INSERT INTO like_example VALUES
    ('John  Dddoe'),
    ('Joe   Doe'),
    ('John_down'),
    ('Joe down'),
    ('Tom   Doe'),
    ('Tim down'),
    (null);
Copy

Esta consulta mostra como usar padrões com curingas (%) para encontrar correspondências:

SELECT * 
  FROM like_example 
  WHERE subject LIKE ANY ('%Jo%oe%','T%e')
  ORDER BY subject;
+-------------+
| SUBJECT     |
|-------------|
| Joe   Doe   |
| John  Dddoe |
| Tom   Doe   |
+-------------+
Copy

Esta consulta mostra como usar um caractere de escape para indicar que um caractere que normalmente é um curinga (_) deve ser tratado como um literal.

SELECT * 
  FROM like_example 
  WHERE subject LIKE ANY ('%J%h%^_do%', 'T%^%e') ESCAPE '^'
  ORDER BY subject;
+-----------+
| SUBJECT   |
|-----------|
| John_down |
+-----------+
Copy