其实我也不知道为什么要写这篇文章,想了想用Python,Java…其他的编程语言容易实现6位随机验证码,但是用MySQL来有点想不出来,于是嘞就在这里记一下,也以免我那一天忘了。
通过我们之前的数据库函数,我们知道了获取随机函数是RAND函数(小写:rand)
可执行了这条语句却发现,小数点后面有很多数
既然我们的任务就是要生成6位随机数,那就在小数点后面的一串数里取出6个数呗,乘上1000000,把右边六个数移到左边
接下来就是把小数点及右边的都去掉,就要用到round函数(四舍五入)
1 | select round(rand()*1000000,0); |
这下6位随机数顺利取到,以为这就完了?
还不够严谨,因为我在一直在执行这个语句的时候,给我刷出来5位随机数,这是因为rand函数有可能会随机生成0.0123456…这种小数点右边以0开头的数,当乘1000000时,就变成了012345,那么0就自然舍去了。
这次我们还需要一个lpad函数(左填充)
1 | select lpad(round(rand()*1000000,0),6,'0'); |
这样就避免了自动舍去开头的0,如果开头没有0那最好。
评论