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

发布时间:2024年01月24日
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);

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

select FLOOR(1.2);

select FLOOR(1.0);

select FLOOR(1.6);

3、返回模,取余,MOD

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

4、返回随机数:RAND

select rand();

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

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

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

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

SELECT RAND();

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

SELECT RAND()*1000000;

?可以看到有小数位

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

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

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

SELECT ROUND(0.02345543343*1000000,0);

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

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

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

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

文章来源:https://blog.csdn.net/wjl990316fddwjl/article/details/135669722
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。