答案:LIKE操作符用于模糊查询,支持%和_通配符,可匹配任意或单个字符,常用于查找指定模式的字符串;例如'%li%'匹配包含"li"的名字,'_o%'匹配第二个字母为"o"的字符串;默认不区分大小写,可通过BINARY实现区分;含特殊字符时需用ESCAPE转义;但前导通配符可能导致全表扫描,影响性能。

在 MySQL 中,LIKE 操作符用于在 WHERE 子句中进行模糊匹配查询。它通常与通配符配合使用,用来查找符合某种模式的字符串数据。
1. 通配符的使用
MySQL 支持两种主要的通配符:
- %:匹配任意数量的字符(包括零个字符)
- _:匹配单个字符
例如:
-
LIKE 'a%':查找以 "a" 开头的字符串 -
LIKE '%abc':查找以 "abc" 结尾的字符串 -
LIKE '%mysql%':查找包含 "mysql" 的字符串 -
LIKE 'a_b':匹配像 "aab"、"acb" 这样中间一个任意字符的三字母字符串
2. 基本语法示例
假设有一个用户表 users,结构如下:
id | name | email ---|----------|------------------ 1 | Alice | alice@example.com 2 | Bob | bob@test.com 3 | Charlie | charlie@demo.com
执行以下查询:
Python v2.4版chm格式的中文手册,内容丰富全面,不但是一本手册,你完全可以把她作为一本Python的入门教程,教你如何使用Python解释器、流程控制、数据结构、模板、输入和输出、错误和异常、类和标准库详解等方面的知识技巧。同时后附的手册可以方便你的查询。
- 查找名字包含 "li" 的用户:
SELECT * FROM users WHERE name LIKE '%li%';
返回 Alice 和 Charlie。 - 查找邮箱以 "@example" 结尾的记录:
SELECT * FROM users WHERE email LIKE '%@example.com';
返回 Alice 的记录。 - 查找名字第二个字母是 "o" 的用户:
SELECT * FROM users WHERE name LIKE '_o%';
返回 Bob。
3. 大小写敏感性说明
在大多数默认配置下,MySQL 的 LIKE 查询是不区分大小写的,前提是字段使用的是不区分大小写的排序规则(如 utf8_general_ci)。
如果需要区分大小写,可以使用 BINARY 关键字:
-
SELECT * FROM users WHERE name LIKE BINARY 'Alice';—— 区分大小写匹配 -
SELECT * FROM users WHERE name LIKE BINARY 'alice';—— 不会匹配 "Alice"
4. 转义特殊字符
如果要查找的字符串本身包含 % 或 _,需要使用 ESCAPE 关键字指定转义字符。
- 查找名字中包含下划线 "_" 的记录:
SELECT * FROM users WHERE name LIKE '%\_%' ESCAPE '\'; - 也可以自定义转义字符,比如:
SELECT * FROM users WHERE name LIKE '%!%%' ESCAPE '!';—— 查找包含 "%" 的名字
基本上就这些。LIKE 查询简单实用,但注意在大表上对无索引字段使用前导通配符(如 LIKE '%abc')会导致全表扫描,影响性能。









