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

使用SUBSTR与LIKE操作符的两条SELECT语句差异解析

两条SQL语句的差异解析

先把两条SQL语句明确列出来:

SELECT SUBSTR(gram_panchayat,1,6) GP FROM tw_master WHERE gram_panchayat LIKE 'B%';
SELECT gram_panchayat FROM tw_master WHERE gram_panchayat LIKE 'B_____';

二者的核心差异主要体现在以下几个方面:

  • 筛选逻辑不同
    第一条语句的WHERE gram_panchayat LIKE 'B%':匹配所有以B开头的gram_panchayat值,不管后续字符有多少,哪怕只有B单个字符也会被选中。
    第二条语句的WHERE gram_panchayat LIKE 'B_____':_是LIKE的单字符通配符,这里5个_意味着只匹配以B开头且总长度恰好为6个字符的记录,长度不符的直接被排除。

  • 返回结果内容不同
    第一条语句返回的是gram_panchayat字段的前6个字符(别名GP)——哪怕原字段长度超过6,也只截取前6位;如果原字段长度不足6,就返回整个字段内容。
    第二条语句返回的是gram_panchayat字段的完整值,而且这些值的长度固定是6位(因为筛选条件已经限定了长度)。

  • 匹配范围与性能差异
    第一条的匹配范围更广,比如B、B123、Babcde、Babcdefgh这类值都符合条件;且LIKE 'B%'可以利用gram_panchayat字段上的前缀索引(如果存在),数据库能快速定位目标记录,性能更优。
    第二条的匹配范围严格受限,只有刚好6个字符且以B开头的值才会被选中;虽然也是前缀匹配,但部分数据库对B_____这种带固定长度限制的模式,索引利用效率可能略低于B%。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 00:45:32