了解MySQL的隐式转化

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

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

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

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

隐式转化规则

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

翻译为中文就是:

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

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 449@qq.com 举报,一经查实,本站将立刻删除。本文链接:https://www.hnhgjc.com/n/756877.html

(0)
jindon的头像jindon
上一篇 2023-10-01
下一篇 2023-10-01

相关推荐

  • 澳尔滨健康水官方旗舰店(澳尔滨官方旗舰店是正品吗)

    大家好,本篇文章为大家解答以上问题,相信很多人对澳尔滨健康水官方旗舰店都不是特别的了解,因此呢,今天就来为大家分享下关于澳尔滨健康水官方旗舰店以及澳尔滨官方旗舰店是正品吗的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

    2023-09-03
  • 张柏芝公个人资料(张柏芝简历个人资料简介)

    大家好,本篇文章为大家解答以上问题,相信很多人对张柏芝公个人资料都不是特别的了解,因此呢,今天就来为大家分享下关于张柏芝公个人资料以及张柏芝简历个人资料简介的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录一览1

    2023-07-29
  • 小米civi3概念机

    许多用户非常关注的小米civi3也放出了一些概念机的图片,当然最终是否如图还是有待商榷的,但基本上也可以先一睹为快了,这个系列的手机基本上都是主打的摄影和外观轻薄,非常的不错。小米civi3概念机1、小米Civi 3手机将会采用联发科天玑8

    经验分享 2023-06-07
  • 快手热推《签下离婚协议后》小说主角薛浩柳晴在线阅读

    都市生活题材小说《签下离婚协议后》是最近很多书迷都在追读的,小说以主人公薛浩柳晴之间的感情纠葛为主线,主要讲述的内容有:“哦,这样啊!那什么……我女儿叫柳晴,你可能不认…

    随笔 2023-05-15
  • 入射是什么意思入射具体是什么意思

    来源:人民日报制图:陈晓劲6月21日,是今年的夏至。夏至的“至”是什么意思呢?是到来的意思吗?其实,这里的“至”指的是“极、最”,强调的是天文意义上的极致。“极致”,其中又有两层含义:第一层含义是北半

联系我们

qq:65401449

在线咨询: QQ交谈

邮件:65401449@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信