在MariaDB 10.1+中,如果ifnull()函数返回DECIMAL而不是BIGINT,这是因为MariaDB在处理ifnull()函数时进行了优化和改进。
ifnull()函数用于判断一个表达式是否为NULL,如果为NULL,则返回指定的替代值。在MariaDB 10.1+之前的版本中,ifnull()函数的返回类型是根据第一个参数的类型来确定的。如果第一个参数是BIGINT类型,那么ifnull()函数的返回类型也是BIGINT。
然而,这种设计可能会导致一些问题。在实际应用中,有时我们希望ifnull()函数的返回类型与第一个参数的类型无关,而是根据替代值的类型来确定。因此,在MariaDB 10.1+中,ifnull()函数的返回类型被改为根据替代值的类型来确定。
这样做的好处是可以更灵活地处理不同类型的数据。例如,如果我们希望将一个DECIMAL类型的字段替代为一个BIGINT类型的值,那么在MariaDB 10.1+中,ifnull()函数可以直接返回一个DECIMAL类型的值,而不需要进行类型转换。
总结起来,MariaDB 10.1+中ifnull()函数返回DECIMAL而不是BIGINT的原因是为了提供更灵活和准确的数据处理方式,使得开发人员可以更方便地处理不同类型的数据。
领取专属 10元无门槛券
手把手带您无忧上云