当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


MySQL LIKE用法及代码示例


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   |
+------------+----------+--------+--------------+------+----------+

相关用法


注:本文由纯净天空筛选整理自Arthur Yanagisawa大神的英文原创作品 MySQL | LIKE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。