LIKE是mysql中用于模糊匹配的操作符,语法为select 列名 FROM 表名 WHERE 列名 LIKE 模式,支持%(任意字符)和_(单个字符)通配符;可查找以特定字符开头、包含某字符、指定位置或长度的字符串;默认不区分大小写,取决于排序规则,可用BINARY强制区分;含%或_时需用ESCAPE转义;适用于模糊查询但以%开头的模式可能影响性能,建议配合索引使用。

LIKE 是 MySQL 中用于在 WHERE 子句中进行模糊匹配的操作符。它通常用来查找符合某种模式的字符串数据,而不是完全精确的匹配。
基本语法
SELECT 列名 FROM 表名 WHERE 列名 LIKE 模式;
模式可以包含两种通配符:
- %:代表任意数量的字符(包括零个字符)
- _:代表一个单一字符
常见用法示例
假设有一个用户表 users,其中有个字段 name。
- 查找以“张”开头的名字:
SELECT * FROM users WHERE name LIKE ‘张%’; - 查找包含“小”的名字:
SELECT * FROM users WHERE name LIKE ‘%小%’; - 查找第二个字是“三”的两字或以上名字:
SELECT * FROM users WHERE name LIKE ‘_三%’; - 查找长度为3且第三个字是“明”的名字:
SELECT * FROM users WHERE name LIKE ‘__明’;
大小写敏感性说明
MySQL 的 LIKE 默认是否区分大小写,取决于字段的字符集和排序规则(collation)。一般情况下,使用 utf8_general_ci 等 _ci 结尾的排序规则是不区分大小写的(case-insensitive)。
如果需要强制区分大小写,可以使用 BINARY 关键字:
- SELECT * FROM users WHERE name LIKE BINARY ‘abc%’; —— 只匹配小写开头
转义特殊字符
如果要查找的字符串本身包含 % 或 _,需要使用 ESCAPE 关键字指定转义符:
- SELECT * FROM products WHERE description LIKE ‘50%’ ESCAPE ”; —— 查找包含 “50%” 的文本
基本上就这些。LIKE 在搜索功能中非常实用,比如实现“搜索用户名”这类模糊查询。但要注意,对大表使用 LIKE,尤其是以 % 开头的模式(如 ‘%abc’),可能会影响查询性能,建议配合索引合理使用。


