SQL 通配符

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

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

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

通配符 描述

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

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

pangugle_news_category 表样本数据

category_id category_title category_desc category_createtime category_admin
1 百度 百度公司 2020-09-16 18:09:52 admin
2 盘古歌 盘古歌技术 2020-09-16 18:12:31 admin
3 Google 谷歌公司 2020-09-16 18:12:56 u1
4 阿里巴巴 阿里巴巴公司 2020-09-16 18:13:20 u1
5 qq 腾讯公司 2020-09-16 18:13:36 u1
6 字节跳动 字节跳动公司 2020-09-16 20:12:31 u2

使用 SQL % 通配符

下面的 SQL 语句选取 category_admin 以字母 "ad" 开始的所有网站:

实例

SELECT * FROM pangugle_news_category
WHERE category_admin LIKE 'ad%';

执行输出结果:

category_id category_title category_desc category_createtime category_admin
1 百度 百度公司 2020-09-16 18:09:52 admin
2 盘古歌 盘古歌技术 2020-09-16 18:12:31 admin

下面的 SQL 语句选取 category_admin 包含模式 "dmi" 的所有网站:

实例

SELECT * FROM pangugle_news_category
WHERE category_admin LIKE '%dmi%';

执行输出结果:

category_id category_title category_desc category_createtime category_admin
1 百度 百度公司 2020-09-16 18:09:52 admin
2 盘古歌 盘古歌技术 2020-09-16 18:12:31 admin

使用 SQL _ 通配符

下面的 SQL 语句选取 category_admin 以一个任意字符开始,然后是 "1" 的所有记录:

实例

SELECT * FROM pangugle_news_category
WHERE category_admin LIKE '_1';

执行输出结果:

category_id category_title category_desc category_createtime category_admin
3 Google 谷歌公司 2020-09-16 18:12:56 u1
4 阿里巴巴 阿里巴巴公司 2020-09-16 18:13:20 u1
5 qq 腾讯公司 2020-09-16 18:13:36 u1

下面的 SQL 语句选取 category_admin 以 "a" 开始,然后是一个任意字符,然后是 "m",然后是一个任意字符,然后是 "n" 的所有网站:

实例

SELECT * FROM pangugle_news_category
WHERE category_admin LIKE 'a_m_n';

执行输出结果:

category_id category_title category_desc category_createtime category_admin
1 百度 百度公司 2020-09-16 18:09:52 admin
2 盘古歌 盘古歌技术 2020-09-16 18:12:31 admin

使用 SQL [charlist] 通配符

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

下面的 SQL 语句选取 category_admin 以 "a"、"u" 开始的所有网站:

实例

SELECT * FROM pangugle_news_category
WHERE category_admin REGEXP '^[au]';

执行输出结果:

category_id category_title category_desc category_createtime category_admin
1 百度 百度公司 2020-09-16 18:09:52 admin
2 盘古歌 盘古歌技术 2020-09-16 18:12:31 admin
3 Google 谷歌公司 2020-09-16 18:12:56 u1
4 阿里巴巴 阿里巴巴公司 2020-09-16 18:13:20 u1
5 qq 腾讯公司 2020-09-16 18:13:36 u1
6 字节跳动 字节跳动公司 2020-09-16 20:12:31 u2

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

实例

SELECT * FROM pangugle_news_category
WHERE category_admin REGEXP '^[A-H]';

执行输出结果:

category_id category_title category_desc category_createtime category_admin
1 百度 百度公司 2020-09-16 18:09:52 admin
2 盘古歌 盘古歌技术 2020-09-16 18:12:31 admin

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

实例

SELECT * FROM pangugle_news_category
WHERE category_admin REGEXP '^[^A-H]';
category_id category_title category_desc category_createtime category_admin
3 Google 谷歌公司 2020-09-16 18:12:56 u1
4 阿里巴巴 阿里巴巴公司 2020-09-16 18:13:20 u1
5 qq 腾讯公司 2020-09-16 18:13:36 u1
6 字节跳动 字节跳动公司 2020-09-16 20:12:31 u2