- MySQL 基础
- MySQL 首页
- MySQL 简介
- MySQL 特性
- MySQL 版本
- MySQL 变量
- MySQL 安装
- MySQL 管理
- MySQL PHP 语法
- MySQL Node.js 语法
- MySQL Java 语法
- MySQL Python 语法
- MySQL 连接
- MySQL Workbench
- MySQL 数据库
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 显示数据库
- MySQL 复制数据库
- MySQL 数据库导出
- MySQL 数据库导入
- MySQL 数据库信息
- MySQL 用户
- MySQL 创建用户
- MySQL 删除用户
- MySQL 显示用户
- MySQL 修改密码
- MySQL 授权
- MySQL 显示权限
- MySQL 收回权限
- MySQL 锁定用户帐户
- MySQL 解锁用户帐户
- MySQL 表
- MySQL 创建表
- MySQL 显示表
- MySQL 修改表
- MySQL 重命名表
- MySQL 克隆表
- MySQL 清空表
- MySQL 临时表
- MySQL 修复表
- MySQL 描述表
- MySQL 添加/删除列
- MySQL 显示列
- MySQL 重命名列
- MySQL 表锁定
- MySQL 删除表
- MySQL 派生表
- MySQL 查询
- MySQL 查询
- MySQL 约束
- MySQL 插入查询
- MySQL 选择查询
- MySQL 更新查询
- MySQL 删除查询
- MySQL 替换查询
- MySQL忽略插入
- MySQL在重复键上插入更新
- MySQL插入选择
- MySQL 视图
- MySQL 创建视图
- MySQL 更新视图
- MySQL 删除视图
- MySQL 重命名视图
- MySQL 运算符和子句
- MySQL WHERE 子句
- MySQL LIMIT 子句
- MySQL DISTINCT 子句
- MySQL ORDER BY 子句
- MySQL GROUP BY 子句
- MySQL HAVING 子句
- MySQL AND 运算符
- MySQL OR 运算符
- MySQL LIKE 运算符
- MySQL IN 运算符
- MySQL ANY 运算符
- MySQL EXISTS 运算符
- MySQL NOT 运算符
- MySQL 不等于运算符
- MySQL IS NULL 运算符
- MySQL IS NOT NULL 运算符
- MySQL BETWEEN 运算符
- MySQL UNION 运算符
- MySQL UNION 与 UNION ALL
- MySQL MINUS 运算符
- MySQL INTERSECT 运算符
- MySQL INTERVAL 运算符
- MySQL 连接
- MySQL 使用连接
- MySQL 内连接
- MySQL 左连接
- MySQL 右连接
- MySQL 交叉连接
- MySQL 全连接
- MySQL 自连接
- MySQL 删除连接
- MySQL 更新连接
- MySQL UNION 与 JOIN
- MySQL 触发器
- MySQL 触发器
- MySQL 创建触发器
- MySQL 显示触发器
- MySQL 删除触发器
- MySQL BEFORE INSERT 触发器
- MySQL AFTER INSERT 触发器
- MySQL BEFORE UPDATE 触发器
- MySQL AFTER UPDATE 触发器
- MySQL BEFORE DELETE 触发器
- MySQL AFTER DELETE 触发器
- MySQL 数据类型
- MySQL 数据类型
- MySQL VARCHAR
- MySQL BOOLEAN
- MySQL ENUM
- MySQL DECIMAL
- MySQL INT
- MySQL FLOAT
- MySQL BIT
- MySQL TINYINT
- MySQL BLOB
- MySQL SET
- MySQL 正则表达式
- MySQL 正则表达式
- MySQL RLIKE 运算符
- MySQL NOT LIKE 运算符
- MySQL NOT REGEXP 运算符
- MySQL regexp_instr() 函数
- MySQL regexp_like() 函数
- MySQL regexp_replace() 函数
- MySQL regexp_substr() 函数
- MySQL 函数 & 运算符
- MySQL 日期和时间函数
- MySQL 算术运算符
- MySQL 数值函数
- MySQL 字符串函数
- MySQL 聚合函数
- MySQL 其他概念
- MySQL NULL 值
- MySQL 事务
- MySQL 使用序列
- MySQL 处理重复项
- MySQL SQL 注入
- MySQL 子查询
- MySQL 注释
- MySQL 检查约束
- MySQL 存储引擎
- MySQL 将表导出到 CSV 文件
- MySQL 将 CSV 文件导入数据库
- MySQL UUID
- MySQL 通用表表达式
- MySQL ON DELETE CASCADE
- MySQL Upsert
- MySQL 水平分区
- MySQL 垂直分区
- MySQL 游标
- MySQL 存储函数
- MySQL 信号
- MySQL 重新发出信号
- MySQL 字符集
- MySQL 排序规则
- MySQL 通配符
- MySQL 别名
- MySQL ROLLUP
- MySQL 今日日期
- MySQL 字面量
- MySQL 存储过程
- MySQL EXPLAIN
- MySQL JSON
- MySQL 标准差
- MySQL 查找重复记录
- MySQL 删除重复记录
- MySQL 选择随机记录
- MySQL 显示进程列表
- MySQL 修改列类型
- MySQL 重置自动递增
- MySQL Coalesce() 函数
- MySQL 有用资源
- MySQL 有用函数
- MySQL 语句参考
- MySQL 快速指南
- MySQL 有用资源
- MySQL 讨论
MySQL 通配符
MySQL 通配符
MySQL 的通配符是特殊字符,与 LIKE 运算符结合使用,用于在表列中搜索文本模式。MySQL 提供两种通配符:百分号 (%) 和下划线 (_) 。
下表列出了 MySQL 中两种通配符的用例:
序号 | 通配符 & 描述 |
---|---|
1 | 百分号 (%) 匹配零个或多个字符。例如,'a%' 匹配以 'a' 开头的字符串,例如 'android' 或 'aeroplane'。 |
2 | 下划线 (_) 匹配单个字符。例如,'_un' 匹配以 'un' 结尾的三个字符的字符串,例如 'gun' 或 'bun'。 |
语法
以下是 MySQL 中 % 和 _ 通配符的语法:
SELECT * FROM table_name WHERE column_name LIKE wildcard;
通配符可以组合使用。下表演示了在 WHERE 子句中使用 '%' 和 '_' 与 LIKE 运算符的不同方法:
序号 | 语句 & 描述 |
---|---|
1 | WHERE SALARY LIKE '200%' 查找以 200 开头的任何值。 |
2 | WHERE SALARY LIKE '%200%' 查找任何位置包含 200 的任何值。 |
3 | WHERE SALARY LIKE '_00%' 查找第二位和第三位为 00 的任何值。 |
4 | WHERE SALARY LIKE '2_%_%' 查找以 2 开头且至少为 3 个字符长的任何值。 |
5 | WHERE SALARY LIKE '%2' 查找以 2 结尾的任何值。 |
6 | WHERE SALARY LIKE '2%0' 查找以 2 开头并以 0 结尾的任何值。 |
7 | WHERE SALARY LIKE '_2%3' 查找第二位为 2 并以 3 结尾的任何值。 |
8 | WHERE SALARY LIKE '2___3' 查找五位数中以 2 开头并以 3 结尾的任何值。 |
MySQL 百分号 % 通配符
MySQL % 通配符是 SQL 查询中用于模式匹配的符号。它表示字符串中任何字符序列(包括零个字符)。
在 WHERE 子句中与 LIKE 运算符一起使用时,% 允许您搜索与指定模式匹配的值。
示例
首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表:
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR(20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(25) NOT NULL, SALARY DECIMAL(18, 2), PRIMARY KEY(ID) );
现在,让我们使用如下所示的 INSERT 语句将值插入到上面创建的表中:
INSERT INTO CUSTOMERS VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ), (2, 'Khilan', 25, 'Delhi', 1500.00 ), (3, 'Kaushik', 23, 'Kota', 2000.00 ), (4, 'Chaitali', 25, 'Mumbai', 6500.00 ), (5, 'Hardik', 27, 'Bhopal', 8500.00 ), (6, 'Komal', 22, 'Hyderabad', 4500.00 ), (7, 'Muffy', 24, 'Indore', 10000.00 );
得到的 CUSTOMERS 表如下:
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
在这里,我们从 CUSTOMERS 表中检索薪水以 2000 开头的所有记录:
SELECT * FROM CUSTOMERS WHERE SALARY LIKE '2000%';
输出
以上查询的输出如下:
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
示例
在下面的查询中,我们正在获取地址以 'D' 开头并以 'i' 结尾的所有记录:
SELECT * FROM CUSTOMERS WHERE ADDRESS LIKE 'D%i';
输出
执行给定查询后,输出显示如下:
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
2 | Khilan | 25 | Delhi | 1500.00 |
示例
在这里,我们正在查找地址以 'd' 结尾的所有记录:
SELECT * FROM CUSTOMERS WHERE ADDRESS LIKE '%d';
输出
当我们执行以上查询时,获得的输出如下:
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
示例
在下面的查询中,我们尝试获取薪水中任何位置都有 '1' 的所有记录:
SELECT * FROM CUSTOMERS WHERE SALARY LIKE '%1%';
输出
以上查询产生的输出如下:
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
2 | Khilan | 25 | Delhi | 1500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
MySQL 下划线 _ 通配符
MySQL 下划线通配符代表在其使用位置的单个字符。当它与 WHERE 子句中的 LIKE 运算符结合使用时,下划线通配符允许您搜索与具有单个字符占位符的特定模式匹配的值。
示例
在这里,我们检索所有 NAME 以某个字符开头,后跟 'ardik' 的 CUSTOMERS -
SELECT * FROM CUSTOMERS WHERE NAME LIKE '_ardik';
输出
让我们编译并运行查询,以产生以下结果 -
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
5 | Hardik | 27 | Bhopal | 8500.00 |
示例
现在,我们正在检索所有 NAME 以 'M' 开头,后跟任何字符,再跟 'f',再跟任何字符,最后跟 'y' 的 CUSTOMERS -
SELECT * FROM CUSTOMERS WHERE NAME LIKE 'M_f_y';
输出
当我们执行以上查询时,获得的输出如下:
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
7 | Muffy | 24 | Indore | 10000.00 |
示例
在下面的查询中,我们检索所有 SALARY 在第二、第三和第四位上具有 '500' 的记录 -
SELECT * FROM CUSTOMERS WHERE SALARY LIKE '_500%';
输出
执行给定查询后,输出显示如下:
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
2 | Khilan | 25 | Delhi | 1500.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
示例
在下面的查询中,我们检索所有 ADDRESS 以 'M' 开头且长度至少为 3 个字符的记录 -
SELECT * FROM CUSTOMERS WHERE ADDRESS LIKE 'M_%_%';
输出
上面查询的输出结果如下所示 -
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
4 | Chaitali | 25 | Mumbai | 6500.00 |
示例
以下查询检索所有 NAME 在第二位具有 'h' 且以 'i' 结尾的记录 -
SELECT * FROM CUSTOMERS WHERE NAME LIKE '_h%i';
输出
如果我们编译并运行查询,则结果如下所示 -
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
4 | Chaitali | 25 | Mumbai | 6500.00 |