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

MySQL中SUBSTRING(CITY,-1)与SUBSTRING(CITY,-1,1)输出相同的原因是什么?

MySQL SUBSTRING两种写法结果一致的原因

两种写法输出结果完全一致的核心原因是MySQL的SUBSTRING()函数本身支持多套合法传参规则,两种写法最终返回的都是CITY字段的最后一个字符,过滤、去重逻辑完全等价,具体原理如下:

  • MySQL的SUBSTRING()存在两种原生支持的语法变体:
    • 三参数形式:SUBSTRING(string, start_position, length),也就是你提到的标准语法,作用是从字符串的start_position位置开始,截取指定length长度的子串。
    • 双参数形式:SUBSTRING(string, start_position),省略长度参数时,默认从start_position位置开始,一直截取到字符串的末尾。
  • 两种写法的执行逻辑完全等价:
    • 写法二SUBSTRING(CITY,-1,1):指定起始位置为-1(MySQL中起始位置为负数时,代表从字符串末尾倒序计数,-1就是倒数第一个字符的位置),截取长度为1,最终返回CITY的最后一个字符。
    • 写法一SUBSTRING(CITY,-1):指定起始位置为-1,省略长度参数,默认从倒数第一个字符开始截取到字符串末尾,最终返回的也是CITY的最后一个字符。

两种写法返回的待判断值完全相同,后续NOT IN ('A','E','I','O','U')的过滤逻辑、DISTINCT去重逻辑也没有差异,所以运行结果完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:09:03