- Categorias:
Funções de cadeia de caracteres e binários (Correspondência/Comparação)
[ NOT ] ILIKE¶
Executa uma comparação que não diferencia maiúsculas de minúsculas para determinar se uma cadeia de caracteres corresponde ou não a um padrão especificado. Para correspondência que diferencia maiúsculas e minúsculas, use LIKE em seu lugar.
LIKE, ILIKE e RLIKE executam operações semelhantes. No entanto, RLIKE usa sintaxe POSIX ERE (Extended Regular Expression, ou expressão regular estendida) em vez da sintaxe padrão SQL usada por LIKE e ILIKE.
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> [ NOT ] ILIKE <pattern> [ ESCAPE <escape> ]
ILIKE( <subject> , <pattern> [ , <escape> ] )
Argumentos¶
Obrigatório:
subject
Sujeito à correspondência.
pattern
Padrão a atender.
Opcional:
escape
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.
Quando ILIKE é especificado, o valor será TRUE se houver uma correspondência. Caso contrário, retorna FALSE.
Quando NOT ILIKE é especificado, o valor será TRUE se não houver correspondência. Caso contrário, retorna FALSE.
Quando ILIKE ou NOT ILIKE é especificado, 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 for NULL e o padrão for NULL, isso não é considerado uma correspondência.
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.A correspondência de padrão cobre toda a cadeia de caracteres. Para combinar uma sequência em qualquer lugar dentro de uma cadeia de caracteres, comece e termine o padrão com
%
.Não há caractere de escape padrão.
Se você usar a barra invertida como um caractere de escape, deverá escapar da barra invertida tanto na expressão quanto na cláusula ESCAPE. Por exemplo, o comando a seguir especifica que o caractere de escape é a barra invertida, e então usa esse caractere de escape para procurar por
%
como um literal (sem o caractere de escape, o%
seria tratado como um curinga):'SOMETHING%' ILIKE '%\\%%' ESCAPE '\\';
Para exemplos de uso de caracteres de escape, consulte os exemplos para ILIKE. Para mais exemplos de uso de caracteres de escape, e em particular a barra invertida como um caractere de escape, consulte os exemplos para LIKE.
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 ilike_ex(name VARCHAR(20));
INSERT INTO ilike_ex VALUES
('John Dddoe'),
('Joe Doe'),
('John_down'),
('Joe down'),
(null);
Os exemplos seguintes mostram o uso de ILIKE
, NOT ILIKE
e o caractere curinga %
:
SELECT *
FROM ilike_ex
WHERE name ILIKE '%j%h%do%'
ORDER BY 1;
+-------------+
| NAME |
|-------------|
| John Dddoe |
| John_down |
+-------------+
SELECT *
FROM ilike_ex
WHERE name NOT ILIKE '%j%h%do%'
ORDER BY 1;
+-----------+
| NAME |
|-----------|
| Joe Doe |
| Joe down |
+-----------+
SELECT *
FROM ilike_ex
WHERE name ILIKE '%j%h%^_do%' ESCAPE '^'
ORDER BY 1;
+-----------+
| NAME |
|-----------|
| John_down |
+-----------+