众所周知,NOT LIKE运算符与WILDCARD字符一起使用,以获取没有指定字符串的字符串。基本上,WILDCARD是帮助搜索与复杂条件匹配的数据的字符。以下是可与NOT LIKE运算符结合使用的通配符类型:
'%'通配符用于指定0、1或更多字符的模式。将%通配符与NOT LIKE运算符一起使用的基本语法如下:
Select Statement…Where column_name NOT LIKE ‘X%’
这里X是越来越%的单个字符任何指定的开始图案匹配等任何数量的从0开始的字符。
百分比“%”通配符可以采用多种方式使用指定模式。以下是一些示例,显示了不同的%相似的NOT LIKE运算符。在这些示例中,X代表指定的模式:
1.不喜欢'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.不喜欢'%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.不喜欢'%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.不喜欢'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运算符使用_通配符的基本语法如下:
选择Statement…where column_name NOT LIKE'X_'
这里X是作为多个单个字符任何指定的开始图形和这样_匹配一个字符。
下划线“ _”通配符可以与指定模式一起以多种方式单独使用或与%组合使用。以下是一些示例,显示了不同的%相似的NOT LIKE运算符。在这些示例中,X代表指定的模式:
1.不喜欢'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.不喜欢'_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.不喜欢_X%: 它与%通配符结合使用。它会找到第二个位置中除X以外的任何值。
例
mysql> Select * from Student Where Name NOT LIKE '_a%'; Empty set (0.00 sec)
4.不喜欢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)