You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中LIKE匹配模式"a%"与"a%_"的功能差异是什么?

SQL中r%_与r%的LIKE匹配逻辑差异

核心通配符基础规则

  • 下划线_:严格匹配1个任意字符,无法匹配空内容、不能省略占位
  • 百分号%:匹配0个及以上任意字符,可匹配空后缀

两个模式的实际差异

  1. r%匹配规则
    首字符为r的所有字符串,对总长度无限制,长度为1的字符串'r'也可以正常匹配。
  2. r%_匹配规则
    首字符为r,且总长度至少为2的字符串,末尾的_要求必须存在至少1个额外字符,完全无法匹配长度为1的'r'。

二者是包含关系:r%的匹配结果完全覆盖r%_的所有匹配结果,还额外包含所有长度为1的'r'字符串,功能并不等价。

测试结果一致的原因

你使用的测试数据集里不存在首字符为r且长度为1的样本,因此两个模式返回的结果刚好重合,才会误以为功能一致。

理解偏差点

你默认%已经覆盖了后面的所有字符,忽略了末尾_的强制占位要求:_不会因为前面有%就失效,必须严格占用1个字符的位置。

简单实测参考:假设测试表有值'r'、'ra'、'rcd'、'tr'

  • 执行LIKE 'r%'返回'r'、'ra'、'rcd'三条结果
  • 执行LIKE 'r%_'仅返回'ra'、'rcd'两条结果

内容的提问来源于stack exchange,提问作者user16782053

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 21:45:03