mysql中LIKE模糊查询如何书写_mysql LIKE语法教程

来源:这里教程网 时间:2026-02-28 20:22:03 作者:

在 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' 可能影响性能,建议配合索引或考虑全文索引方案。

相关推荐