mysql if函数返回值_[Mysql] IF()函数的返回值数据类型优先级问题

The default return type of IF() (which may matter when it is stored into a temporary table)

is calculated as follows.

如下图所示,但是似乎没有说明优先级

0454040bfb4a117971fb6cdbcabaa9a1.png

我们验证一下:虽然返回的10是个整型,但是其实返回的数据类型是浮点型的

mysql> create table t1 select if(1=1,10,10.1) score;

Query OK, 1 row affected (0.79 sec)

Records: 1  Duplicates: 0  Warnings: 0

879f112b99846e404c2c682208f7bee0.png

再看如下例子,我们发现返回的10是一个varchar型的类型

mysql> create table t11 select if(1=1,10,'10.1') score;

Query OK, 1 row affected (0.38 sec)

Records: 1  Duplicates: 0  Warnings: 0

88b7c29a469615f22608f55b7d2b063d.png

由此实验得出,其优先级是按照官方文档的那张表格自上而下,也就是字符串优先级最高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值