参考文章:https://www.jb51.net/article/101531.htm
mysql在进行不同类型的参数的运算时会产生隐式转换。其中,当需要把字符串转为浮点数的时,mysql从左边开始对字符串做转换处理的,转换规则如下:
- 如果字符串的第一个字符就是非数字的字符,那么转换为数字就是0。
- 如果字符串以数字开头,那么从左开始到第一个非数字为止,转换为数字。
示例:
sql | 结果 | 转换 |
---|---|---|
select '1' + 1 | 2 | '1' 转换为 1 |
select '1aaaa' + 1 | 2 | '1aaaa' 转换为 1 |
select 'aaaa1' + 1 | 1 | 'aaaa1' 转换为 0 |
select 'aa2aa9aa' + 1 | 1 | 'aa2aa9aa' 转换为 0 |
select '100aa3aa2aa' + 1 | 101 | '100aa3aa2aa' 转换为 100 |
select 'aaaaaa' + 1 | 1 | 'aaaaaa' 转换为 0 |
网友评论