LIKE用于MySQL模糊查询,支持%(任意字符)和_(单字符)通配符,如'张%'查开头、'%明%'查包含、'_华'查结尾,可组合使用;区分大小写由排序规则决定,可用BINARY强制区分,含%或_时需ESCAPE转义,注意性能影响。

在 MySQL 中,LIKE 操作符用于在 WHERE 子句中进行模糊匹配查询,常用于查找包含特定模式的字符串。它支持使用通配符来代替一个或多个字符,是处理文本搜索时非常实用的功能。
LIKE 基本语法
基本结构如下:
SELECT 列名 FROM 表名 WHERE 列名 LIKE 模式;
模式中可以使用两个主要通配符:
- %:代表零个、一个或多个任意字符
- _(下划线):代表一个且仅一个任意字符
常用 LIKE 查询示例
假设有一个用户表 users,包含字段 name,以下是一些常见用法:
1. 以某个词开头
SELECT * FROM users WHERE name LIKE '张%';
查找名字以“张”开头的所有记录,如“张三”、“张伟”等。
2. 包含某个词
SELECT * FROM users WHERE name LIKE '%明%';
查找名字中包含“明”的所有记录,如“小明”、“明明”、“李明”等。
3. 以某个词结尾
SELECT * FROM users WHERE name LIKE '%华';
查找名字以“华”结尾的记录,如“建华”、“志华”等。
4. 匹配固定长度的字符串(使用 _ )
SELECT * FROM users WHERE name LIKE '张_';
查找姓“张”且名字为两个字的记录,比如“张三”、“张伟”,但不包括“张小三”。
5. 组合使用 _ 和 %
SELECT * FROM users WHERE name LIKE '张_%_';
查找姓“张”且名字至少有两个字以上的记录(总共至少三个字),如“张小明”、“张建国”等。
大小写敏感性说明
MySQL 的 LIKE 查询默认是否区分大小写,取决于字段的字符集和排序规则(collation):
- 若字段为 utf8_general_ci 或类似 _ci(case insensitive)结尾,则不区分大小写
- 若为 _cs 或 _bin 等,则可能区分大小写
如果需要强制区分大小写,可使用 BINARY:
SELECT * FROM users WHERE name LIKE BINARY 'zhang%';
转义特殊字符
如果要查找的内容本身包含 % 或 _,需使用 ESCAPE 关键字指定转义符:
SELECT * FROM products WHERE description LIKE '%50\%' ESCAPE '\';
此查询会匹配包含 “50%” 的描述内容,其中反斜杠 \ 将 % 转义为字面意义。
基本上就这些。LIKE 是日常开发中最常用的模糊查询方式,掌握好通配符的使用能大幅提升数据检索效率。注意在大数据量表中使用 LIKE '%xxx' 可能影响性能,建议配合索引或考虑全文索引方案。










