首页 > 苹果 > 了解MySQL的隐式转化

了解MySQL的隐式转化

2023-10-01 223

在MySQL中。当我们对不同类型的值进行比较的时候,为了使得这些数值「可比较」(也可以称为类型的兼容性),MySQL会做一些隐式转化(Implicit type conversion)。那么什么是“隐式转换”呢?让我们一起来了解一下吧!

当我们对不同类型的值进行比较的时候,为了使得这些数值「可比较」(也可以称为类型的兼容性),MySQL会做一些隐式转化(Implicit type conversion)。比如下面的例子:了解MySQL的隐式转化

很明显,上面的SQL语句的执行过程中就出现了隐式转化。并且从结果们可以判断出,第一条SQL中,将字符串的“1”转换为数字1,而在第二条的SQL中,将数字2转换为字符串“2”。
MySQL也提供了CAST()函数。我们可以使用它明确的把数值转换为字符串。当使用CONCA()函数的时候,也可能会出现隐式转化,因为它希望的参数为字符串形式,但是如果我们传递的不是字符串呢:了解MySQL的隐式转化

隐式转化规则

官方文档中关于隐式转化的规则是如下描述的:了解MySQL的隐式转化

翻译为中文就是:
  • 1.两个参数至少有一个是 NULL 时,比较的结果也是 NULL,例外是使用 <=> 对两个 NULL 做比较时会返回 1,这两种情况都不需要做类型转换
  • 2.两个参数都是字符串,会按照字符串来比较,不做类型转换
  • 3.两个参数都是整数,按照整数来比较,不做类型转换
  • 4.十六进制的值和非数字做比较时,会被当做二进制串
  • 5.有一个参数是 TIMESTAMP 或 DATETIME,并且另外一个参数是常量,常量会被转换为 timestamp
  • 6.有一个参数是 decimal 类型,如果另外一个参数是 decimal 或者整数,会将整数转换为 decimal 后进行比较,如果另外一个参数是浮点数,则会把 decimal 转换为浮点数进行比较
  • 7.所有其他情况下,两个参数都会被转换为浮点数再进行比较

湘ICP备19005331号-4copyright?2018-2024

guofenkong.com 版权所有

果粉控是专业苹果设备信息查询平台
提供最新的IOS系统固件下载
相关APP应用及游戏下载,绿色无毒,下载速度快。

联系邮箱:guofenkong@163.com