数据类型转换问题

varvhar 类型数据

23leon 转换为int 是 23

leon23转换为int 就是 0

mysql数据类型转换是什么规则呢,从varchar 转换为int 又发生了什么过程呢?

阅读 2.1k
1 个回答

隐式转换的规则:

 a. 两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用 <=> 对两个 NULL 做比较时会返回 1,这两种情况都不需要做类型转换
 b. 两个参数都是字符串,会按照字符串来比较,不做类型转换
 c. 两个参数都是整数,按照整数来比较,不做类型转换
 d. 十六进制的值和非数字做比较时,会被当做二进制串
 e. 有一个参数是 TIMESTAMP 或 DATETIME,并且另外一个参数是常量,常量会被转换为 timestamp
 f. 有一个参数是 decimal 类型,如果另外一个参数是 decimal 或者整数,会将整数转换为 decimal 后进行比较,如果另外一个参数是浮点数,则会把 decimal 转换为浮点数进行比较
 g. 所有其他情况下,两个参数都会被转换为浮点数再进行比较
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题