- Categorias:
Funções de cadeia de caracteres e binários (Correspondência/Comparação)
ILIKE¶
Permite a correspondência de cadeias de caracteres com base na comparação com um padrão. Ao contrário da função LIKE, a correspondência de cadeias de caracteres não diferencia maiúsculas e minúsculas.
LIKE ILIKE e RLIKE realizam todos operações similares; entretanto, RLIKE usa sintaxe POSIX EXE (Extended Regular Expression, ou expressão regular estendida) em vez da sintaxe padrão SQL usada por LIKE e ILIKE.
Sintaxe¶
<subject> 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.
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
) emsubject
como correspondências.A correspondência de padrão ILIKE 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, então você deve especificar a barra invertida 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, e em particular a barra invertida como um caractere de escape, consulte os exemplos para a função LIKE.
Detalhes do agrupamento¶
Arguments with collation specifications are currently not supported.
Exemplos¶
CREATE OR REPLACE TABLE ilike_ex(subject varchar(20)); INSERT INTO ilike_ex VALUES ('John Dddoe'), ('Joe Doe'), ('John_down'), ('Joe down'), (null);SELECT * FROM ilike_ex WHERE subject ILIKE '%j%h%do%' ORDER BY 1; +-------------+ | SUBJECT | |-------------| | John Dddoe | | John_down | +-------------+SELECT * FROM ilike_ex WHERE subject ILIKE '%j%h%^_do%' ESCAPE '^' ORDER BY 1; +-----------+ | SUBJECT | |-----------| | John_down | +-----------+