首页 > 数据库 > SQL > 正文

SQL模糊查询如何实现_LIKE匹配规则全面解析【指导】

冷炫風刃
发布: 2025-12-20 18:04:03
原创
748人浏览过
LIKE是SQL中基于%和_通配符的轻量模糊查询手段,支持前缀匹配走索引,但不支持正则特性;需用ESCAPE转义特殊字符,大小写敏感性由排序规则决定。

sql模糊查询如何实现_like匹配规则全面解析【指导】

SQL 中的 LIKE 是实现模糊查询最常用、最基础的手段,核心在于用通配符配合字符串模式匹配。它不依赖全文索引或正则引擎,轻量高效,适用于大多数简单到中等复杂度的文本筛选场景。

LIKE 的两个核心通配符:% 和 _

% 表示任意长度(含零长度)的任意字符序列;_ 表示单个任意字符。这是所有 LIKE 匹配的基石,其他写法都基于它们组合。

  • name LIKE '张%':匹配“张三”“张小明”“张”,但不匹配“李张”
  • code LIKE 'A_B%':匹配“A1B001”“AxB22”,但不匹配“AB123”(中间缺一个字符)或“A12B33”(_ 只占一位)
  • desc LIKE '%error%warning%':可跨位置匹配,只要 “error” 出现在 “warning” 前面且两者都在该字段中(注意:不是正则中的顺序断言,仅靠 % 连接)

转义特殊字符:ESCAPE 子句不可少

当要查的字段本身含 %_(比如产品编号为 A%2023、路径为 data_2024),直接写 LIKE 'A%2023' 会被当成通配模式,必须显式声明转义符。

  • 写法:code LIKE 'A\%2023' ESCAPE '\'
  • 也可选其他字符,如 LIKE 'A!_2023' ESCAPE '!',此时 ! 后的 _ 不再是通配符,而是字面量下划线
  • 注意:不同数据库对默认转义符支持略有差异,MySQL 默认无转义,PostgreSQL/SQL Server 需显式指定 ESCAPE

大小写敏感性取决于字段排序规则(Collation)

LIKE 是否区分大小写,不由关键字决定,而由字段所用的排序规则控制。例如:

小微助手
小微助手

微信推出的一款专注于提升桌面效率的助手型AI工具

小微助手 249
查看详情 小微助手
  • MySQL 中 VARCHAR(50) COLLATE utf8mb4_0900_as_cs → 区分大小写,“ABC” 不匹配 “abc”
  • SQL Server 中 Latin1_General_CI_AS → CI 表示 Case-Insensitive,即不区分
  • 若需强制忽略大小写,可统一转换:UPPER(name) LIKE UPPER('zhang%'),但会丢失索引优势

性能关键:LIKE 左侧不能以通配符开头

只有当模式不以 %_ 开头时(即前缀匹配),数据库才可能利用 B-Tree 索引加速查询。

  • ✅ 高效:WHERE phone LIKE '138%' → 可走索引
  • ❌ 全表扫描:WHERE name LIKE '%ing'LIKE '%john%' → 索引失效(除非使用倒排索引、全文索引或函数索引)
  • 替代方案:对后缀匹配,可考虑存储反向字符串并建索引,如 REVERSE(name) 建索引,再查 REVERSE(name) LIKE REVERSE('%ing') → 实际查 'gni%'

掌握 LIKE 的行为边界比死记语法更重要——它不是正则,不支持重复、分组或逻辑或;它快在简单,也受限于简单。真有复杂文本分析需求,该上全文检索就别硬扛。

以上就是SQL模糊查询如何实现_LIKE匹配规则全面解析【指导】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号