首页/数据/SQL 速查/LIKE 模糊匹配与转义
本包目录(311 条)

LIKE 模糊匹配与转义

百分号匹配任意长度、下划线匹配单个字符;前缀模式可走索引,前后都加百分号基本等于全表扫描,必要时用 ESCAPE 处理字面量。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT * FROM users WHERE name LIKE 'Li%';      -- 前缀匹配
SELECT * FROM users WHERE name LIKE '%son';     -- 后缀,通常全表扫描
SELECT * FROM users WHERE code LIKE 'A_1';      -- 下划线匹配一个字符
SELECT * FROM users WHERE rate LIKE '100!%' ESCAPE '!';   -- 匹配字面量百分号
百分号任意长度(含 0 个)字符
下划线恰好一个字符
ESCAPE自定义转义字符,避免依赖反斜杠
索引只有前缀模式('abc%')能有效利用 B-tree 索引
需要“包含关键词”式检索时,评估全文索引、pg_trgm 或搜索引擎,而不是反复扫大表。

易错点

  • LIKE '%x%' 无法使用普通索引,数据量大时是典型慢查询源头
  • MySQL 中反斜杠默认是 LIKE 的转义符,匹配含反斜杠的内容容易出错,显式写 ESCAPE 更可控

数据来源与参考

  • MySQL 8.0 Reference Manual · Pattern Matching
  • PostgreSQL Documentation · LIKE
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌