MariaDB NOT LIKE 运算符使用指南
在 MariaDB 中,NOT LIKE
运算符 LIKE
运算符的否定操作。
注意, MariaDB NOT LIKE
运算符执行整个字符串匹配,不能像正则表达式那样部分匹配。
MariaDB NOT LIKE
语法
NOT LIKE
运算符是一个双目比较运算符,需要两个操作数。 NOT LIKE
运算符语法如下:
expression NOT LIKE pattern [ESCAPE 'escape_char']
说明:
expression
可以是一个字段名、值或其他的表达式(比如函数调用、运算等)。pattern
是一个字符串模式。MariaDB 字符串模式支持两个通配符:%
和_
。%
匹配零或多个任意字符。_
匹配单个任意字符。- 如果需要匹配通配符,则需要使用
\
转义字符,如\%
和\_
。 - 使用通配符匹配文本时,不区分字母大小写。
ESCAPE 'escape_char'
是可选的,它用来指定新的转义字符。
如果 expression
与 pattern
匹配,NOT LIKE
运算符返回 0
,否则返回 1
。
比如:
a%
匹配以字符a
开头的任意长度的字符串。%a
匹配以字符a
结尾的任意长度的字符串。%a%
匹配包含字符a
的任意长度的字符串。%a%b%
匹配同时包含字符a
和b
且a
在b
前面的任意长度的字符串。a_
匹配以字符a
开头长度为 2 字符串。_a
匹配以字符a
结尾长度为 2 字符串。
MariaDB NOT LIKE
示例
%
%
匹配零或多个任意字符,下面的语句展示了 %
通配符的用法:
SELECT
'abc' LIKE 'a%',
'abc' NOT LIKE 'a%';
输出:
+-----------------+---------------------+
| 'abc' LIKE 'a%' | 'abc' NOT LIKE 'a%' |
+-----------------+---------------------+
| 1 | 0 |
+-----------------+---------------------+
这里,a%
模式表示 a
开头的任意长度的字符串,因此与 abc
匹配。
再来一个:
SELECT
'abc' LIKE '%b%',
'abc' NOT LIKE '%b%';
输出:
+------------------+----------------------+
| 'abc' LIKE '%b%' | 'abc' NOT LIKE '%b%' |
+------------------+----------------------+
| 1 | 0 |
+------------------+----------------------+
这里,%b%
模式表示包含 b
的任意长度的字符串,因此与 abc
匹配。
_
_
匹配单个任意字符,下面的语句展示了 _
通配符的用法:
SELECT
'ab' LIKE 'a_',
'ab' NOT LIKE 'a_',
'ab' LIKE '_b',
'ab' NOT LIKE '_b';
输出:
+----------------+--------------------+----------------+--------------------+
| 'ab' LIKE 'a_' | 'ab' NOT LIKE 'a_' | 'ab' LIKE '_b' | 'ab' NOT LIKE '_b' |
+----------------+--------------------+----------------+--------------------+
| 1 | 0 | 1 | 0 |
+----------------+--------------------+----------------+--------------------+
数据库示例
下面的示例使用了来自 Sakila 示例数据库的 actor
表。
SELECT * FROM actor
WHERE first_name NOT LIKE 'P%'
LIMIT 10;
输出:
+----------+------------+--------------+---------------------+
| actor_id | first_name | last_name | last_update |
+----------+------------+--------------+---------------------+
| 2 | NICK | WAHLBERG | 2006-02-15 04:34:33 |
| 3 | ED | CHASE | 2006-02-15 04:34:33 |
| 4 | JENNIFER | DAVIS | 2006-02-15 04:34:33 |
| 5 | JOHNNY | LOLLOBRIGIDA | 2006-02-15 04:34:33 |
| 6 | BETTE | NICHOLSON | 2006-02-15 04:34:33 |
| 7 | GRACE | MOSTEL | 2006-02-15 04:34:33 |
| 8 | MATTHEW | JOHANSSON | 2006-02-15 04:34:33 |
| 9 | JOE | SWANK | 2006-02-15 04:34:33 |
| 10 | CHRISTIAN | GABLE | 2006-02-15 04:34:33 |
| 11 | ZERO | CAGE | 2006-02-15 04:34:33 |
+----------+------------+--------------+---------------------+
结论
在 MariaDB 中,NOT LIKE
运算符 LIKE
运算符的否定操作。