MariaDB LIKE 运算符使用指南
在 MariaDB 中,LIKE 运算符将给定的字符串与给定的模式进行匹配,并返回匹配结果。
注意, MariaDB LIKE 运算符执行整个字符串匹配,不能像正则表达式运算符 REGEXP 那样部分匹配。
LIKE 运算符的否定操作是 NOT LIKE。
MariaDB LIKE 语法
LIKE 运算符是一个双目比较运算符,需要两个操作数。 LIKE 运算符语法如下:
expression LIKE pattern [ESCAPE 'escape_char']
说明:
expression可以是一个字段名、值或其他的表达式(比如函数调用、运算等)。pattern是一个字符串模式。MariaDB 字符串模式支持两个通配符:%和_。%匹配零或多个任意字符。_匹配单个任意字符。- 如果需要匹配通配符,则需要使用
\转义字符,如\%和\_。 - 使用通配符匹配文本时,不区分字母大小写。
ESCAPE 'escape_char'是可选的,它用来指定新的转义字符。
如果 expression 与 pattern 匹配,LIKE 运算符返回 1,否则返回 0。
比如:
a%匹配以字符a开头的任意长度的字符串。%a匹配以字符a结尾的任意长度的字符串。%a%匹配包含字符a的任意长度的字符串。%a%b%匹配同时包含字符a和b且a在b前面的任意长度的字符串。a_匹配以字符a开头长度为 2 字符串。_a匹配以字符a结尾长度为 2 字符串。
MariaDB LIKE 示例
%
% 匹配零或多个任意字符,下面的语句展示了 % 通配符的用法:
SELECT 'abc' LIKE 'a%';
输出:
+-----------------+
| 'abc' LIKE 'a%' |
+-----------------+
| 1 |
+-----------------+这里,a% 模式表示 a 开头的任意长度的字符串,因此与 abc 匹配。
再来一个:
SELECT 'abc' LIKE '%b%';
输出:
+------------------+
| 'abc' LIKE '%b%' |
+------------------+
| 1 |
+------------------+这里,%b% 模式表示包含 b 的任意长度的字符串,因此与 abc 匹配。
_
_ 匹配单个任意字符,下面的语句展示了 _ 通配符的用法:
SELECT 'ab' LIKE 'a_', 'ab' LIKE '_b';
输出:
+----------------+----------------+
| 'ab' LIKE 'a_' | 'ab' LIKE '_b' |
+----------------+----------------+
| 1 | 1 |
+----------------+----------------+数据库示例
下面的示例使用了来自 Sakila 示例数据库的 actor 表。
SELECT * FROM actor WHERE first_name LIKE 'P%';
输出:
+----------+------------+-----------+---------------------+
| actor_id | first_name | last_name | last_update |
+----------+------------+-----------+---------------------+
| 1 | PENELOPE | GUINESS | 2006-02-15 04:34:33 |
| 46 | PARKER | GOLDBERG | 2006-02-15 04:34:33 |
| 54 | PENELOPE | PINKETT | 2006-02-15 04:34:33 |
| 104 | PENELOPE | CRONYN | 2006-02-15 04:34:33 |
| 120 | PENELOPE | MONROE | 2006-02-15 04:34:33 |
+----------+------------+-----------+---------------------+性能
包含 LIKE 运算符的查询的运行速度可能比其他查询慢得多,除非您确实需要它,否则您可能应该避免使用运算符。使用 % 作为前缀可能特别慢。
结论
在 MariaDB 中,LIKE 运算符将给定的字符串与给定的模式进行匹配,并返回匹配结果。