- 类别:
字符串和二进制函数 (匹配/比较)
[ NOT ] ILIKE¶
执行不区分大小写的比较以确定字符串是否与指定模式相匹配。对于不区分大小写的匹配,改为使用 LIKE。
LIKE、ILIKE 和 RLIKE 都执行类似的操作;但是,RLIKE 使用 POSIX ERE (扩展正则表达式)语法,而不是 LIKE 和 ILIKE 所使用的 SQL 模式语法。
小技巧
您可以使用搜索优化服务,提高用于调用此函数的查询的性能。有关详细信息,请参阅 搜索优化服务。
- 另请参阅:
语法¶
<subject> [ NOT ] ILIKE <pattern> [ ESCAPE <escape> ]
ILIKE( <subject> , <pattern> [ , <escape> ] )
实参¶
必填:
subject
以匹配为准。
pattern
要匹配的模式。
可选:
escape
插入通配符前面的字符,以指示通配符应解释为常规字符,而不是通配符。
返回¶
返回 BOOLEAN 或 NULL。
指定 ILIKE 时,如果存在匹配项,则值为 TRUE。否则返回 FALSE。
指定 NOT ILIKE 时,如果没有匹配项,则值为 TRUE。否则返回 FALSE。
当指定 ILIKE 或 NOT ILIKE 时,如果任何实参为 NULL,则返回 NULL。
使用说明¶
要在模式匹配中包含单引号或其他特殊字符,可以使用 反斜杠转义序列。
NULL 与 NULL 不匹配。换句话说,如果主体为 NULL,模式为 NULL,则不被视为匹配。
pattern
支持 SQL 通配符:下划线 (
_
) 匹配任意单个字符。百分号 (
%
) 匹配任何包含零个或多个字符的序列。
作为匹配项,
pattern
中的通配符包括subject
中的换行符 (n
)。模式匹配涵盖整个字符串。要匹配字符串中任意位置的序列,请以
%
开始和结束模式。没有默认的转义字符。
排序规则详细信息¶
仅支持 upper
、lower
和 trim
排序规则规范。还支持与 upper
、lower
和 trim
的组合(例如 upper-trim
和 lower-trim
),但区域组合(例如 en-upper
)除外。
示例¶
创建一个包含一些字符串的表:
CREATE OR REPLACE TABLE ilike_ex(name VARCHAR(20));
INSERT INTO ilike_ex VALUES
('John Dddoe'),
('Joe Doe'),
('John_down'),
('Joe down'),
(null);
以下示例展示了 ILIKE
、NOT ILIKE
及通配符 %
的用法:
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 |
+-----------+