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 Statement…Where column_name NOT LIKE ‘X_’
这里 **X** 是任何指定的起始模式,例如单个字符或更多字符,而 _ 匹配恰好一个字符。
下划线“_”通配符可以单独使用或与 % 结合使用,并可以以多种方式与指定的模式一起使用。以下是一些显示使用 % 的不同 NOT LIKE 运算符的示例。在这些示例中,X 表示指定的模式
**1. NOT LIKE ‘X_’**: 它将查找除以“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”结尾并在 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)