MySQL中另一类很重要的函数就是数值函数,这些函数能处理很多数值方面的运算。
可以想象,如果没有这些函数的支持,我们在编写有关数值运算方面的代码时将会困难重重。举个栗子,如果没有ABS函数,要取一个数值的绝对值,就需要进行好多次判断才能返回这个值,而数值函数能够大大提高工作效率。
本节将配合一些实例对MySQL常用的函数进行详细的介绍。
接下来,通过具体的实例来逐个地研究每个函数的用法
ABS(x):返回x的绝对值。
SELECT ABS('-1'), ABS('1');CEIL(x):返回大于x的最小整数值
SELECT CEIL(0.5), CEIL(-0.5);FLOOR(x) 返回小于x的最大整数值。
SELECT FLOOR(-0.8),FLOOR(0.8);用法刚好和CEIL(x)函数用法相反。MOD(x, y) 返回x/y的值。
SELECT MOD(15,10), MOD(1,11), MOD(NULL,10);和x%y的结果相同,模数和被模数任何一个为NULL结果都为NULLRAND() 返回0~1内的随机值。
SELECT RAND(), RAND(),RAND(); 该函数可以取任意指定范围内的随机数,比如需要产生0~100内的任意随机整数,可如下操作;SELECT CEIL(100 * RAND()), CEIL(100 * RAND());ROUND(x, y) 返回参数x的四舍五入的有y位小数的值。
如果是整数,将保留y位数量的0;如果不写y,则默认y为0,即将x四舍五入后取整,适合于将所有数字保留同样小数位情况。SELECT ROUND(1.1),ROUND(1.1,2),ROUND(1,2);TRUNCATE(x,y) 返回数字x截断为y位小数的结果。
TRUNCATE和ROUND的区别在于TRUNCATE仅仅是截断,而不进行四舍五入。SELECT ROUND(1.12345,4), TRUNCATE(1.12345, 4);