NOT LIKE 运算符可以与哪些不同的通配符一起使用?


我们知道 NOT LIKE 运算符与通配符一起使用,用于不获取包含指定字符串的字符串。基本上,通配符是帮助搜索匹配复杂条件数据的字符。以下是可与 NOT LIKE 运算符结合使用的通配符类型

% - 百分号

‘%’ 通配符用于指定 0 个、1 个或多个字符的模式。使用 % 通配符与 **NOT LIKE** 运算符的基本语法如下:

Select Statement…Where column_name NOT LIKE ‘X%’

这里 **X** 是任何指定的起始模式,例如单个字符或更多字符,而 % 匹配从 0 开始的任意数量的字符。

百分号 ‘%’ 通配符可以与指定的模式以多种方式结合使用。以下是显示使用 % 的不同 NOT LIKE 运算符的一些示例。在这些示例中,X 代表指定的模式

**1. NOT LIKE ‘X%’**: 它将查找任何不以“X”开头的值。

示例

mysql> Select * from Student Where Name NOT LIKE 'a%';

+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_Admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers |              2001  |
| 15   | Harshit | Delhi   | Commerce  |              2009  |
| 20   | Gaurav  | Jaipur  | Computers |              2017  |
| 21   | Yashraj | NULL    | Math      |              2000  |
+------+---------+---------+-----------+--------------------+

4 rows in set (0.00 sec)

**2. NOT LIKE ‘%X’**: 它将查找任何不以“X”结尾的值。

示例

mysql> Select * from Student Where Name NOT LIKE '%v';

+------+---------+---------+----------+--------------------+
| Id   | Name    | Address | Subject  | year_of_Admission  |
+------+---------+---------+----------+--------------------+
| 15   | Harshit | Delhi   | Commerce |              2009  |
| 21   | Yashraj | NULL    | Math     |              2000  |
+------+---------+---------+----------+--------------------+

2 rows in set (0.00 sec)

**3. NOT LIKE ‘%X%’**: 它将查找任何在任何位置都不包含“X”的值。

示例

mysql> Select * from Student Where Name NOT LIKE '%h%';

+------+--------+---------+-----------+--------------------+
| Id   | Name   | Address | Subject   | year_of_Admission  |
+------+--------+---------+-----------+--------------------+
| 1    | Gaurav | Delhi   | Computers |              2001  |
| 2    | Aarav  | Mumbai  | History   |              2010  |
| 20   | Gaurav | Jaipur  | Computers |              2017  |
+------+--------+---------+-----------+--------------------+

3 rows in set (0.00 sec)

**4. NOT LIKE ‘X%X’**: 它将查找任何不以“X”开头且不以“X”结尾的值。

示例

mysql> Select * from Student Where Name NOT LIKE 'a%v';

+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_Admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers |              2001  |
| 15   | Harshit | Delhi   | Commerce  |              2009  |
| 20   | Gaurav  | Jaipur  | Computers |              2017  |
| 21   | Yashraj | NULL    | Math      |              2000  |
+------+---------+---------+-----------+--------------------+

4 rows in set (0.00 sec)

_ 下划线

下划线通配符用于匹配恰好一个字符。使用 _ 通配符与 **NOT LIKE** 运算符的基本语法如下:

Select 语句…Where column_name NOT LIKE ‘X_’

这里 **X** 是任何指定的起始模式,例如单个字符或更多字符,而 _ 匹配恰好一个字符。

下划线 ‘_’ 通配符可以单独使用,也可以与 % 结合使用,并可以与指定的模式以多种方式结合使用。以下是显示使用 % 的不同 NOT LIKE 运算符的一些示例。在这些示例中,X 代表指定的模式

**1. NOT LIKE ‘X_’**: 它将查找任何不以“X”开头且其后只有一个字符的值。

示例

mysql> Select * from Student Where Year_of_Admission NOT LIKE '200_';

+------+--------+---------+-----------+--------------------+
| Id   | Name   | Address | Subject   | year_of_admission  |
+------+--------+---------+-----------+--------------------+
| 2    | Aarav  | Mumbai  | History   |              2010  |
| 20   | Gaurav | Jaipur  | Computers |              2017  |
+------+--------+---------+-----------+--------------------+

2 rows in set (0.00 sec)

**2. NOT LIKE ‘_X’**: 它将查找任何不以“X”结尾且其前只有一个字符的值。

示例

mysql> Select * from Student Where Year_of_Admission NOT LIKE '_017';

+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers |              2001  |
| 2    | Aarav   | Mumbai  | History   |              2010  |
| 15   | Harshit | Delhi   | Commerce  |              2009  |
| 21   | Yashraj | NULL    | Math      |              2000  |
+------+---------+---------+-----------+--------------------+

4 rows in set (0.00 sec)

**3. NOT LIKE _X%**: 它与 % 通配符结合使用。它将查找任何在第二个位置不包含 X 的值。

示例

mysql> Select * from Student Where Name NOT LIKE '_a%';
Empty set (0.00 sec)

**4. NOT LIKE X_%_%**: 它与 % 通配符结合使用。它将查找任何不以 X 开头且长度至少为三个字符的值。

示例

mysql> Select * from Student Where Name NOT LIKE 'g_%_%';

+------+---------+---------+----------+--------------------+
| Id   | Name    | Address | Subject  | year_of_Admission  |
+------+---------+---------+----------+--------------------+
| 2    | Aarav   | Mumbai  | History  |              2010  |
| 15   | Harshit | Delhi   | Commerce |              2009  |
| 21   | Yashraj | NULL    | Math     |              2000  |
+------+---------+---------+----------+--------------------+

3 rows in set (0.00 sec)

更新于:2020年2月7日

浏览量:116

开启你的职业生涯

完成课程获得认证

开始学习
广告