mysql随机_mysql随机函数的例子

mysql随机函数的例子,用过mysql的同学都知道rand()函数是最最常见的,要实现随机数的功能,还非得借助rand(),它的作用是产生0到1直接的随机数,下面就列出几个常见的用例。

生成随机的三位数SELECT ceiling(rand()*899+101)-1 as随机三位数

ceiling是向上取整,rand()为0时,生成的三位数是ceiling(0+101)-1=100

rand()为1时,生成的三位数是ceiling(899+101)-1=999

网络上的SELECT ceiling(rand()*900+100)来生成随机的三位数是会出问题的,当rand()为1时,最终的结果就是1000了

生成随机的250到520的数select round(rand()*270)+250as随机250到520的数

--或者

select floor(rand()*270+250)随机250到520的数

round是四舍五入,floor是向下取整

生成随机的11位手机号码,利用自定义函数来实现drop functionif exists phonenumber;

delimiter $$

create function phonenumber () returns varchar (11)

begin

declare str varchar (11)default'';

declare i intdefault0;

declare prefix varchar (255)default"133,134,135,136,137,138,139,150,151,152,188,189";

set str = concat( str, substring( prefix, round( rand()*2)*4+1,3));

while i <=8do

set i = i +1;

set str = concat( str,round((rand()*9)));

endwhile;

return str;

end $$

delimiter ;

select phonenumber()as手机号码;

695b94fe8b809d9b7749fd816c744976.png

前三位号段可自行补充

好久不写mysql函数,有些陌生了,连续报了几个错误才修正好。错误一,就是忘记改delimiter,到了有分号的语句就报错。错误二,是忘了要把声明语句尽量靠前写。本例中,如果把declare i int default 0;放到set str = concat( str, substring( prefix, round( rand( ) * 2 ) * 4+1, 3 ) );后是万万不行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值