MySQL LIKE操作符可以使用哪些不同的通配符字符
我们知道LIKE操作符与通配符字符一起使用,以获取具有指定字符串的字符串。通配符是帮助搜索与复杂条件匹配的数据的字符。下面是可以与LIKE操作符结合使用的通配符的类型。
阅读更多:MySQL 教程
% – 百分比符号
“%”通配符用于指定0、1或多个字符的模式。使用%通配符的基本语法如下
Select Statement…Where column_name LIKE ‘X%’
在这里,X是任何指定的起始模式,如单个字符或更多字符,%匹配从0开始的任意数量的字符。
百分比“%”通配符可以用多种方式与指定的模式配合使用。以下是一些示例,显示不同的LIKE操作符及其使用方式。在这些示例中,X表示指定的模式。
1. LIKE ‘X%’:- 它将找到任何以“X”开头的值。
示例
mysql> Select * from Student Where name LIKE 'a%';
+------+-------+---------+---------+
| Id | Name | Address | Subject |
+------+-------+---------+---------+
| 2 | Aarav | Mumbai | History |
+------+-------+---------+---------+
1 row in set (0.00 sec)
2. LIKE ‘%X’:- 它将找到任何以“X”结尾的值。
示例
mysql> Select * from Student Where name LIKE '%v';
+------+--------+---------+-----------+
| Id | Name | Address | Subject |
+------+--------+---------+-----------+
| 1 | Gaurav | Delhi | Computers |
| 2 | Aarav | Mumbai | History |
| 20 | Gaurav | Jaipur | Computers |
+------+--------+---------+-----------+
3 rows in set (0.00 sec)
3. LIKE ‘%X%’:- 它将找到任何具有“X”的值。
示例
mysql> Select * from Student Where name LIKE '%h%';
+------+---------+---------+----------+
| Id | Name | Address | Subject |
+------+---------+---------+----------+
| 15 | Harshit | Delhi | Commerce |
| 21 | Yashraj | NULL | Math |
+------+---------+---------+----------+
2 rows in set (0.00 sec)
4. LIKE ‘X%X’:- 它将找到任何以“X”开头并以“X”结尾的值。
示例
mysql> Select * from Student Where name LIKE 'a%v';
+------+-------+---------+---------+
| Id | Name | Address | Subject |
+------+-------+---------+---------+
| 2 | Aarav | Mumbai | History |
+------+-------+---------+---------+
1 row in set (0.00 sec)
_ 下划线
下划线通配符用于匹配正好一个字符。使用通配符的基本语法如下−Select Statement…Where column_name LIKE ‘X’
在这里,X是任何指定的起始模式,如单个字符或更多字符,_匹配恰好一个字符。
下划线“_”通配符可以与指定的模式一起使用,单独使用或与%结合使用,有很多种方式。以下是一些示例,显示不同的LIKE操作符及其使用方式。在这些示例中,X表示指定的模式。
1. LIKE ‘X_’:- 它将找到任何以“X”开头且X后恰好有一个字符的值。
示例
mysql> 选择 * 从学生 WHERE year_of_Admission LIKE '200_';
+------+---------+---------+-----------+--------------------+
| Id | 名字 | 地址 | 学科 | 入学年份 |
+------+---------+---------+-----------+--------------------+
| 1 | Gaurav | 德里 | 计算机 | 2001 |
| 15 | Harshit | 德里 | 商业 | 2009 |
| 21 | Yashraj | NULL | 数学 | 2000 |
+------+---------+---------+-----------+--------------------+
3 行 (0.00 sec)
2. LIKE ‘_X’:- 它会查找以“X”结尾且在X之前刚好有一个字符的任何值。
例子
mysql> 选择 * 从学生 WHERE year_of_Admission LIKE '_017';
+------+--------+---------+-----------+--------------------+
| Id | 名字 | 地址 | 学科 | 入学年份 |
+------+--------+---------+-----------+--------------------+
| 20 | Gaurav | 蓟州 | 计算机 | 2017 |
+------+--------+---------+-----------+--------------------+
1 行 (0.00 sec)
3. LIKE _X%:- 它结合了%通配符。它会找到第二位是X的任何值。
例子
mysql> 选择 * 从学生 WHERE Name LIKE '_a%';
+------+---------+---------+-----------+--------------------+
| Id | 名字 | 地址 | 学科 | 入学年份 |
+------+---------+---------+-----------+--------------------+
| 1 | Gaurav | 德里 | 计算机 | 2001 |
| 2 | Aarav | 孟买 | 历史 | 2010 |
| 15 | Harshit | 德里 | 商业 | 2009 |
| 20 | Gaurav | 蓟州 | 计算机 | 2017 |
| 21 | Yashraj | NULL | 数学 | 2000 |
+------+---------+---------+-----------+--------------------+
5 行 (0.00 sec)
4. LIKE X_%_%:- 它结合了%通配符。它会找到以X开头且长度至少为三个字符的任何值。
例子
mysql> 选择 * 从学生 WHERE Name LIKE 'g_%_%';
+------+--------+---------+-----------+--------------------+
| Id | 名字 | 地址 | 学科 | 入学年份 |
+------+--------+---------+-----------+--------------------+
| 1 | Gaurav | 德里 | 计算机 | 2001 |
| 20 | Gaurav | 蓟州 | 计算机 | 2017 |
+------+--------+---------+-----------+--------------------+
2 行 (0.00 sec)
极客教程