MySQL字符串转数字隐式转换规则官方文档求证
MySQL字符串转数值的隐式转换官方规则
MySQL对字符串转数值的隐式转换,官方定义了明确的解析逻辑:
- 先跳过字符串开头所有空白字符(空格、制表符这类都算);
- 从第一个非空白字符开始,读取连续的有效数字字符(包含正负号、小数点),碰到第一个非数字相关的字符就停止解析;
- 如果字符串开头没有任何有效数字,转换结果为0。
你遇到的'1 thousand'被转成1的情况,就是这个规则的体现:读取到'1'后,下一个字符是空格(不属于有效数字字符),解析立即停止,最终得到数值1。
官方文档里虽然用'1'、' 1'、'1a'这些例子做展示,但其实在类型转换的核心说明里明确了这个底层规则——字符串转数值时只会提取开头的有效数字序列,后续的非数字内容会被直接忽略。
内容的提问来源于stack exchange,提问作者Ilab Sentuser
相关产品推荐
相关产品推荐

