MySQL LIKE 运算符可以使用哪些不同的通配符?


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

 % - 百分号

‘%’ 通配符用于指定 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> Select * from student WHERE year_of_Admission LIKE '200_';
+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_Admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers |              2001  |
| 15   | Harshit | Delhi   | Commerce  |              2009  |
| 21   | Yashraj | NULL    | Math      |              2000  |
+------+---------+---------+-----------+--------------------+
3 rows in set (0.00 sec)

2. LIKE ‘_X’:- 它将查找以 “X” 结尾并在 X 前恰好有一个字符的任何值。

示例

mysql> Select * from student WHERE year_of_Admission LIKE '_017';
+------+--------+---------+-----------+--------------------+
| Id   | Name   | Address | Subject   | year_of_Admission  |
+------+--------+---------+-----------+--------------------+
| 20   | Gaurav | Jaipur  | Computers |              2017  |
+------+--------+---------+-----------+--------------------+
1 row in set (0.00 sec)

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

示例

mysql> Select * from student WHERE Name LIKE '_a%';
+------+---------+---------+-----------+--------------------+
| Id   | Name    | Address | Subject   | year_of_Admission  |
+------+---------+---------+-----------+--------------------+
| 1    | Gaurav  | Delhi   | Computers |              2001  |
| 2    | Aarav   | Mumbai  | History   |              2010  |
| 15   | Harshit | Delhi   | Commerce  |              2009  |
| 20   | Gaurav  | Jaipur  | Computers |              2017  |
| 21   | Yashraj | NULL    | Math      |              2000  |
+------+---------+---------+-----------+--------------------+
5 rows in set (0.00 sec)

4. LIKE X_%_%:- 它与 % 通配符结合使用。它将查找以 X 开头且至少包含三个字符的任何值。

示例

mysql> Select * from student WHERE Name LIKE 'g_%_%';
+------+--------+---------+-----------+--------------------+
| Id   | Name   | Address | Subject   | year_of_Admission  |
+------+--------+---------+-----------+--------------------+
| 1    | Gaurav | Delhi   | Computers |              2001  |
| 20   | Gaurav | Jaipur  | Computers |              2017  |
+------+--------+---------+-----------+--------------------+
2 rows in set (0.00 sec)

更新于:2020年2月6日

浏览量 347 次

开启你的职业生涯

完成课程获得认证

开始学习
广告