请稍候,加载中....

SQL 通配符

通配符

通配符可用于替代字符串中的任何其他字符。

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。

SQL 通配符用于搜索表中的数据。

在 SQL 中,可使用以下通配符:

通配符 描述
% 替代 0 个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]

[!charlist]
不在字符列中的任何单一字符

 


演示数据库

在猿变手册教程中,我们将使用 yuanbian 样本数据库。

下面是选自 "articles" 表的数据:

+----+--------------+----------+--------+---------------------+
| id | title        | author   | a_type |      pub_date       |
+----+--------------+---------—+--------+---------------------+
| 1  | hadoop简介    |   大猿   |   311  | 2003-01-05 11:23:00 |
| 2  | python元类    |   小猿   |   163  | 2003-01-11 13:00:01 |
| 3  | HTML基础      |   猿大头  |  497  | 2004-03-09 12:00:00 |
| 4  | JavaScript   |    猿媛   |   20   | 2005-11-3 17:34:12 |
| 5  | ETL快速入门    |   猿媛   |    3   | 2005-11-7 18:40:00 |
+----+--------------+----------+--------+---------------------+

 


% 通配符

通配符示例 1

下面的 SQL 语句选取作者以"猿" 开始的所有文章:

SELECT * FROM articles
WHERE author LIKE '猿%';

执行输出结果:

+----+--------------+----------+--------+---------------------+

| id | title        | author   | a_type |      pub_date       |
+----+--------------+---------—+--------+---------------------+
| 3  | HTML基础      |   猿大头  |  497  | 2004-03-09 12:00:00 |
| 4  | JavaScript   |    猿媛   |   20   | 2005-11-3 17:34:12 |
| 5  | ETL快速入门    |   猿媛   |    3   | 2005-11-7 18:40:00 |
+----+--------------+----------+--------+---------------------+

通配符示例 2

下面的 SQL 语句选取 title 包含模式 "python" 的所有文章:

SELECT * FROM articles
WHERE title LIKE '%python%';

执行输出结果:

+----+--------------+----------+--------+---------------------+
| id | title        | author   | a_type |      pub_date       |
+----+--------------+---------—+--------+---------------------+
| 2  | python元类    |   小猿   |   163  | 2003-01-11 13:00:01 |
+----+--------------+----------+--------+---------------------+

 


_ 通配符

_ 通配符示例 1

下面的 SQL 语句选取 author 以一个任意字符开始,然后是 "猿" 的所有文章:

SELECT * FROM articles
WHERE author LIKE '_猿';

执行输出结果:

+----+--------------+----------+--------+---------------------+
| id | title        | author   | a_type |      pub_date       |
+----+--------------+---------—+--------+---------------------+
| 1  | hadoop简介    |   大猿   |   311  | 2003-01-05 11:23:00 |
| 2  | python元类    |   小猿   |   163  | 2003-01-11 13:00:01 |
+----+--------------+----------+--------+---------------------+

_ 通配符示例 2

下面的 SQL 语句选取 title 以 "h" 开始,然后是一个任意字符,然后是 "d",然后是一个任意字符,然后是 "op" 的所有文章:

SELECT * FROM articles
WHERE title LIKE 'h_d_op%';

执行输出结果:

+----+--------------+----------+--------+---------------------+
| id | title        | author   | a_type |      pub_date       |
+----+--------------+---------—+--------+---------------------+
| 1  | hadoop简介    |   大猿   |   311  | 2003-01-05 11:23:00 |
+----+--------------+----------+--------+---------------------+

 


[charlist] 通配符

MySQL 中使用 REGEXPNOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

REGEXP示例 1

下面的 SQL 语句选取title 以 "p"、"J" 开始的所有文章:

SELECT * FROM articles
WHERE title REGEXP '^[pJ]';

执行输出结果:

+----+--------------+----------+--------+---------------------+
| id | title        | author   | a_type |      pub_date       |
+----+--------------+---------—+--------+---------------------+
| 2  | python元类    |   小猿   |   163  | 2003-01-11 13:00:01 |
| 4  | JavaScript   |    猿媛   |   20   | 2005-11-3 17:34:12 |
+----+--------------+----------+--------+---------------------+

REGEXP示例 2

下面的 SQL 语句选取 name 以 A 到 H 字母开头的网站:

SELECT * FROM articles
WHERE title REGEXP '^[A-H]';

执行输出结果:

+----+--------------+----------+--------+---------------------+
| id | title        | author   | a_type |      pub_date       |
+----+--------------+---------—+--------+---------------------+
| 1  | hadoop简介    |   大猿   |   311  | 2003-01-05 11:23:00 |
| 3  | HTML基础      |   猿大头  |  497  | 2004-03-09 12:00:00 |
| 4  | JavaScript   |    猿媛   |   20   | 2005-11-3 17:34:12 |
| 5  | ETL快速入门    |   猿媛   |    3   | 2005-11-7 18:40:00 |
+----+--------------+----------+--------+---------------------+

REGEXP示例 3

下面的 SQL 语句选取 name 不以 A 到 H 字母开头的网站:

SELECT * FROM articles
WHERE title REGEXP '^[^A-H]';

执行输出结果:

+----+--------------+----------+--------+---------------------+
| id | title        | author   | a_type |      pub_date       |
+----+--------------+---------—+--------+---------------------+
| 2  | python元类    |   小猿   |   163  | 2003-01-11 13:00:01 |
+----+--------------+----------+--------+---------------------+

Python学习手册-