MySQL 的 LIKE 运算符可用于搜索具有特定字符串模式的值。我们可以将两个通配符与LIKE 运算符一起使用:%(百分比)和_(下划线)。
|
通配符 |
说明 |
|---|---|
|
|
代替零个、一个或多个字符 |
|
|
代替一个角色 |
用法
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE value;
例子
考虑下表有关一些学生的信息:
|
student_id |
名称 |
名字 |
day_enrolled |
年龄 |
用户名 |
|---|---|---|---|---|---|
|
1 |
Sky |
Towner |
2015-12-03 |
17 |
stowner1 |
|
2 |
Ben |
Davis |
2016-04-20 |
19 |
bdavis2 |
|
3 |
Travis |
Apple |
2018-08-14 |
18 |
tapple3 |
|
4 |
Arthur |
David |
2016-04-01 |
16 |
adavid4 |
|
5 |
Benjamin |
Town |
2014-01-01 |
17 |
btown5 |
可以使用此处的代码创建上述示例表。
百分比通配符
要返回 lname 以 'Dav' 开头的所有学生:
SELECT * FROM students WHERE lname LIKE 'Dav%';
+------------+--------+-------+--------------+------+----------+
| student_id | fname | lname | day_enrolled | age | username |
+------------+--------+-------+--------------+------+----------+
| 2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
| 4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
+------------+--------+-------+--------------+------+----------+
请注意, % 表示 'Dav' 之后的任意数量的字符。
要返回包含 'dav' 的所有 usernames:
SELECT * FROM students WHERE username LIKE '%dav%';
+------------+--------+-------+--------------+------+----------+
| student_id | fname | lname | day_enrolled | age | username |
+------------+--------+-------+--------------+------+----------+
| 2 | Ben | Davis | 2016-04-20 | 19 | bdavis2 |
| 4 | Arthur | David | 2016-04-01 | 16 | adavid4 |
+------------+--------+-------+--------------+------+----------+
将 % 放在开头和结尾允许双端搜索。
LIKE 不是包含的同义词。例如:
SELECT * FROM students WHERE lname LIKE 'Dav';
Empty set (0.00 sec)
即使姓氏 'Davis' 和 'David' 包含 'Dav' ,如果没有通配符,也不会返回它们。
下划线通配符
要返回名字以 'S' 开头并以 'y' 结尾的三个字母的学生:
SELECT * FROM students WHERE fname LIKE 'S_y';
+------------+-------+--------+--------------+------+----------+
| student_id | fname | lname | day_enrolled | age | username |
+------------+-------+--------+--------------+------+----------+
| 1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
+------------+-------+--------+--------------+------+----------+
这里,三个字符fname中的第二个字符可以是任何内容。但是,第一个字符必须是 'S' ,第三个字符必须是 'y' 。
组合通配符
要返回 username 的第二个字符为 't' 的学生:
SELECT * FROM students WHERE username LIKE '_t%';
+------------+----------+--------+--------------+------+----------+
| student_id | fname | lname | day_enrolled | age | username |
+------------+----------+--------+--------------+------+----------+
| 1 | Sky | Towner | 2015-12-03 | 17 | stowner1 |
| 5 | Benjamin | Town | 2014-01-01 | 17 | btown5 |
+------------+----------+--------+--------------+------+----------+
相关用法
- MySQL LIMIT用法及代码示例
- MySQL LEAD() and LAG()用法及代码示例
- MySQL LEFT方法用法及代码示例
- MySQL LPAD方法用法及代码示例
- MySQL LN()用法及代码示例
- MySQL LOCATE方法用法及代码示例
- MySQL LOG()用法及代码示例
- MySQL LTRIM()用法及代码示例
- MySQL LOCALTIME方法用法及代码示例
- MySQL LCASE方法用法及代码示例
- MySQL LTRIM方法用法及代码示例
- MySQL LOCATE()用法及代码示例
- MySQL LPAD()用法及代码示例
- MySQL LOG方法用法及代码示例
- MySQL LOAD_FILE()用法及代码示例
- MySQL LOWER()用法及代码示例
- MySQL LOG10方法用法及代码示例
- MySQL LEAST()用法及代码示例
- MySQL LN方法用法及代码示例
- MySQL LOCALTIME()用法及代码示例
- MySQL LENGTH方法用法及代码示例
- MySQL LENGTH()用法及代码示例
- MySQL LOG2方法用法及代码示例
- MySQL LOAD_FILE方法用法及代码示例
- MySQL LOCALTIMESTAMP()用法及代码示例
注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | LIKE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
