- Categorias:
Funções de cadeia de caracteres e binários (Correspondência/Comparação)
LIKE ALL¶
Executa uma comparação que diferencia maiúsculas de minúsculas para corresponder uma cadeia de caracteres a todos os um ou mais padrões especificados. Use esta função em uma cláusula WHERE para filtrar correspondências.
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 Serviço de otimização de pesquisa.
- Consulte também:
Sintaxe¶
<subject> LIKE ALL (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
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¶
Retorna um BOOLEAN ou NULL. O valor será TRUE se houver uma correspondência. Caso contrário, retorna FALSE. Retorna NULL se algum argumento for NULL.
Notas de uso¶
Para incluir aspas simples ou outros caracteres especiais na correspondência de padrões, você pode usar uma sequência de escape de barra invertida.
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.
Você pode usar o operador lógico NOT antes de
subject
para realizar uma comparação que diferencia maiúsculas de minúsculas que retorna TRUE se não corresponder a nenhum dos padrões especificados.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
) emsubject
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%
).
Se a função for usada com uma subconsulta, a subconsulta deve retornar uma única linha.
Por exemplo, o seguinte só deve ser usado se a subconsulta retornar uma única linha:
SELECT ... WHERE x LIKE ALL (SELECT ...)
Detalhes do agrupamento¶
Somente as especificações de agrupamento upper
, lower
e trim
são suportadas. Combinações com upper
, lower
e trim
também são suportadas (por exemplo, upper-trim
e lower-trim
), exceto para combinações de localidade (por exemplo, en-upper
).
Exemplos¶
Criar uma tabela que contenha algumas cadeias de caracteres:
CREATE OR REPLACE TABLE like_all_example(name VARCHAR(20));
INSERT INTO like_all_example VALUES
('John Dddoe'),
('Joe Doe'),
('John_do%wn'),
('Joe down'),
('Tom Doe'),
('Tim down'),
(null);
Esta consulta mostra como usar padrões com curingas (%
) para encontrar correspondências:
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%Jo%oe%','J%e')
ORDER BY name;
+-------------+
| NAME |
|-------------|
| Joe Doe |
| John Dddoe |
+-------------+
Essa consulta mostra que todos os padrões precisam corresponder para que o resultado seja bem-sucedido:
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%Jo%oe%','J%n')
ORDER BY name;
+------+
| NAME |
|------|
+------+
Esta consulta mostra como usar um caractere de escape para indicar que caracteres que normalmente são curingas (_
e %
) devem ser tratados como literais.
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%J%h%^_do%', 'J%^%wn') ESCAPE '^'
ORDER BY name;
+------------+
| NAME |
|------------|
| John_do%wn |
+------------+