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
运算符将给定的字符串与给定的模式进行匹配,并返回匹配结果。