- A+
所属分类:教程文章

在 MySQL 中,通配符 %(百分号)用于模糊匹配字符串,主要配合 LIKE 或 NOT LIKE 操作符使用。它代表任意数量的字符,包括零个字符、一个字符或多个字符。
通配符 % 的基本含义
% 可以匹配任意长度的字符串,甚至空字符串。它常用于 SELECT、UPDATE、DELETE 等语句中的 WHERE 条件中,实现模糊查询。
例如:
- LIKE 'a%':匹配所有以字母 "a" 开头的字符串,如 "apple"、"and"、"abc123"
- LIKE '%z':匹配所有以 "z" 结尾的字符串,如 "buzz"、"quiz"
- LIKE '%test%':匹配包含 "test" 的任意位置的字符串,如 "mytest"、"testing"、"this is a test"
与下划线 _ 的区别
MySQL 还有另一个通配符 _(下划线),它只匹配单个字符。而 % 匹配的是零个或多个字符。
比如:

360智图

143
AI驱动的图片版权查询平台

143
查看详情

- LIKE 'a_c':只能匹配像 "abc"、"aac" 这样中间有一个字符的情况
- LIKE 'a%c':可以匹配 "ac"、"abc"、"abbc"、"aXcYc" 等任意中间内容
实际应用场景
常见于用户搜索、数据筛选等场景。例如:
- 查找姓“李”的所有用户:
SELECT * FROM users WHERE name LIKE '李%'; - 查找邮箱以 ".com" 结尾的记录:
SELECT * FROM users WHERE email LIKE '%.com'; - 查找包含关键字“admin”的用户名:
SELECT * FROM users WHERE username LIKE '%admin%';
注意事项
使用 % 时需注意以下几点:
- LIKE 匹配默认是不区分大小写的(依赖于字段的排序规则,如 utf8_general_ci),若要区分大小写可使用 BINARY 关键字
- 在大表上使用 % 开头的模糊查询(如 '%abc')可能导致索引失效,影响性能,建议结合全文索引或优化查询方式
- 如果需要查找真正的百分号字符,需使用转义:LIKE '\%' ESCAPE '\'
基本上就这些。掌握 % 的用法,能有效提升 MySQL 模糊查询的灵活性和实用性。




