LIKE谓词
描述
LIKE谓词用于搜索特定模式。该谓词还支持使用量词的多个模式,包括
ANY
、
SOME
和
ALL
。
语法
[ NOT ] { LIKE search_pattern [ ESCAPE esc_char ] | [ RLIKE | REGEXP ] regex_pattern }
[ NOT ] { LIKE quantifiers ( search_pattern [ , ... ]) }
参数
-
search_pattern
指定要通过
LIKE
子句搜索的字符串模式。它可以包含特殊的模式匹配字符:-
%
匹配零个或多个字符。 -
_
精确匹配一个字符。
-
-
esc_char
指定转义字符。默认的转义字符是
\
。 -
regex_pattern
指定要通过
RLIKE
或REGEXP
子句搜索的正则表达式匹配模式。 -
quantifiers
指定谓词量词,包括
ANY
、SOME
和ALL
。ANY
或SOME
意味着如果一个模式与输入匹配,则返回 true;ALL
意味着如果所有模式与输入匹配,则返回 true。
示例
创建 表 person (id INT, name STRING, age INT);
插入 进入 person 值
(100, 'John', 30),
(200, 'Mary', NULL),
(300, 'Mike', 80),
(400, 'Dan', 50),
(500, 'Evan_w', 16);
选择 * 来自 person 哪里 name 像 'M%';
+---+----+----+
| id|name| age|
+---+----+----+
|300|Mike| 80|
|200|Mary|null|
+---+----+----+
选择 * 来自 person 哪里 name 像 'M_ry';
+---+----+----+
| id|name| age|
+---+----+----+
|200|Mary|null|
+---+----+----+
选择 * 来自 person 哪里 name 不 像 'M_ry';
+---+------+---+
| id| name|age|
+---+------+---+
|500|Evan_W| 16|
|300| Mike| 80|
|100| John| 30|
|400| Dan| 50|
+---+------+---+
选择 * 来自 person 哪里 name RLIKE 'M+';
+---+----+----+
| id|name| age|
+---+----+----+
|300|Mike| 80|
|200|Mary|null|
+---+----+----+
选择 * 来自 person 哪里 name REGEXP 'M+';
+---+----+----+
| id|name| age|
+---+----+----+
|300|Mike| 80|
|200|Mary|null|
+---+----+----+
选择 * 来自 person 哪里 name 像 '%\_%';
+---+------+---+
| id| name|age|
+---+------+---+
|500|Evan_W| 16|
+---+------+---+
选择 * 来自 person 哪里 name 像 所有 ('%an%', '%an');
+---+----+----+
| id|name| age|
+---+----+----+
|400| Dan| 50|
+---+----+----+
选择 * 来自 person 哪里 name 像 任何 ('%an%', '%an');
+---+------+---+
| id| name|age|
+---+------+---+
|400| Dan| 50|
|500|Evan_W| 16|
+---+------+---+
选择 * 来自 person 哪里 name 不 像 所有 ('%an%', '%an');
+---+----+----+
| id|name| age|
+---+----+----+
|100|John| 30|
|200|Mary|null|
|300|Mike| 80|
+---+----+----+
选择 * 来自 person 哪里 name 不 像 任何 ('%an%', '%an');
+---+------+----+
| id| name| age|
+---+------+----+
|100| John| 30|
|200| Mary|null|
|300| Mike| 80|
|500|Evan_W| 16|
+---+------+----+