MySQL函数—数值函数,随机数验证码生成

MySQL函数—日期函数
函数 功能
CEIL(x) 向上取整
FLOOR(x) 向下取整
MOD(x,y) 返回x/y的模(取余)
RAND() 返回0-1的随机数
ROUND(x,y) 求参数x的四舍五入,保留y位小数

1、向上取整:CEIL。只要小数点后的数字大于0就取整。

select CEIL(1.2);
select CEIL(1.8);
select CEIL(1.0);

MySQL函数—数值函数,随机数验证码生成_第1张图片

2、向下取整:FLOOR。只要小数点后的数字大于0就向下取整。

select FLOOR(1.2);

select FLOOR(1.0);

select FLOOR(1.6);

MySQL函数—数值函数,随机数验证码生成_第2张图片

3、返回模,取余,MOD

select MOD(1,3);
select MOD(7,4);

MySQL函数—数值函数,随机数验证码生成_第3张图片

4、返回随机数:RAND

select rand();

MySQL函数—数值函数,随机数验证码生成_第4张图片

5、求四舍五入的值,保留小数位:ROUND

select ROUND(2.33333,2);
select ROUND(2.33833,2);

MySQL函数—数值函数,随机数验证码生成_第5张图片

案例:通过数据库函数,生成一个6位数的随机验证码

第一步:#首先生成随机数0-1:

SELECT RAND();

第二步:#随机数是0-1之间的,乘以1000000

SELECT RAND()*1000000;

 可以看到有小数位

MySQL函数—数值函数,随机数验证码生成_第6张图片

第三步:直接使用ROUNGD保留0个小数位

SELECT ROUND(RAND()*1000000,0);

MySQL函数—数值函数,随机数验证码生成_第7张图片

第四步:这样貌似完成了,但是还是有bug的,假如生成随机数是0.02345543343..,四舍五入之后是

SELECT ROUND(0.02345543343*1000000,0);

可以发现是个5位数的,bug了吧!!!!!!!!!!! 

MySQL函数—数值函数,随机数验证码生成_第8张图片

第五步:保证一定是6位数,我们可以使用数值函数的左填充(LPAD)或右填充(RPAD) 

SELECT LPAD(ROUND(0.02345543343*1000000,0),6,'0');

MySQL函数—数值函数,随机数验证码生成_第9张图片

SELECT LPAD(ROUND(RAND()*1000000,0),6,'0');

MySQL函数—数值函数,随机数验证码生成_第10张图片

你可能感兴趣的:(mysql,数据库)